
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>
で返却されるので値だけ取り出してく。
- セッションID:neoCoreからは
- endsession(セッションの破棄)
- neoCoreコマンド:ENDSESSION
- 戻り値
- 処理結果:neoCoreからは
<?xml version="1.0" encoding="UTF-8" ?> <success/>
で返却されるので、必要に応じて後処理を行う。
- 処理結果:neoCoreからは
- transactionstart(トランザクションの開始)
- neoCoreコマンド:TRANSACTION
- 引数:セッションID
- 戻り値
- 処理結果:neoCoreからは
<?xml version="1.0" encoding="UTF-8" ?> <success/>
で返却されるので、必要に応じて後処理を行う
- 処理結果:neoCoreからは
- neoCoreコマンド:TRANSACTION
- セッションID
- 処理結果:neoCoreからは
<?xml version="1.0" encoding="UTF-8" ?> <success/>
で返却されるので、必要に応じて後処理を行う
- neoCoreコマンド:TRANSACTION
<?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>
で返却されるので、必要に応じて後処理を行う。