XML DBだからできること:HTMLをDBにそのまま保存

鵜飼寛太(サイバーテック)
2008-03-19 18:30:00
  • このエントリーをはてなブックマークに追加

xhtmlで記述されたhtmlファイルを用意

 最初に登録用htmlファイル(test.html)を用意する

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>テストページ</title>
 </head>
 <body>
  <div>
   <h1>テストページ</h1>
   <div>htmlをそのままストアする</div>
  </div>
 </body>
</html>

 以下の点に注意すること。

  • 文字コードのコンバートを省くためUTF-8で記述
  • meta情報のcharsetは最初の日本語より前にないとPHPのloadHTMLFile関数で読み込んだ際に文字化けする。
  • 通常のhtmlで記述されている場合、PHPのxmlパーサーの仕様でXML文書化されるので予期しない結果になることがある。

neoCore用関数を用意

 次に以下のようなPHPスクリプトを用意する。

  • PHPスクリプト( neoCore.functions.php)
  • cURL API
    • 引数
      • httpリクエストメソッド:GETまたはPOST
      • neoCore接続先:neoadminまたはneoquery
      • 送信データ(省略化):httpリクエスト時の送信データ。通常はhoge=hoga&foo=barの形式
      • セッションID(省略可):getsession関数で取得したneoCoreセッションID
    • 戻り値
      • httpレスポンス:xml文書で返却されるので必要に応じて後処理を行う
  • getsession(セッションの取得)
    • neoCoreコマンド:GETSESSION
    • パラメータ
      • ユーザ名
      • パスワード(md5でハッシュされていること)
    • 戻り値
      • セッションID:neoCoreからは<?xml version="1.0" encoding="UTF-8" ?> <sid>Session ID</sid>で返却されるので値だけ取り出してく。
  • endsession(セッションの破棄)
    • neoCoreコマンド:ENDSESSION
    • 戻り値
      • 処理結果:neoCoreからは<?xml version="1.0" encoding="UTF-8" ?> <success/>で返却されるので、必要に応じて後処理を行う。
  • transactionstart(トランザクションの開始)
    • neoCoreコマンド:TRANSACTIONSTART
    • 引数:セッションID
    • 戻り値
      • 処理結果:neoCoreからは<?xml version="1.0" encoding="UTF-8" ?> <success/>で返却されるので、必要に応じて後処理を行う
  • transactioncommit(トランザクションのコミット)
    • neoCoreコマンド:TRANSACTIONCOMMIT
    • 引数
      • セッションID
    • 戻り値
      • 処理結果:neoCoreからは<?xml version="1.0" encoding="UTF-8" ?> <success/>で返却されるので、必要に応じて後処理を行う
  • transactionrollback(トランザクションのロールバック)
    • neoCoreコマンド:TRANSACTIONROLLBACK
    • 引数:セッションID
    • 戻り値
    • 処理結果:neoCoreからは<?xml version="1.0" encoding="UTF-8" ?> <success/>で返却されるので、必要に応じて後処理を行う
  • store(xml文書のストア)

    • neoCoreコマンド:STORE
    • 引数
      • セッションID
      • 格納するxml文書
      • プリフィックスファイル
      • スキーマファイル
    • 戻り値
      • 処理結果:neoCoreからは
      • <?xml version="1.0" encoding="UTF-8" ?>
        <Store-Results>
         <Documents-Processed> 1 </Documents-Processed>
         <Last-Doc-ID> 1199 </Last-Doc-ID>
        </Store-Results>
        で返却されるので、必要に応じて後処理を行う。

  • 新着記事
  • 特集
  • ブログ