XML DBだからできること:HTMLをDBにそのまま保存
鵜飼寛太(サイバーテック)
2008/03/19 22:30
今回は、HTMLデータをDBにそのまま保存するというXML DBだからできる芸当をみていきます。
ストア用のPHPスクリプトを用意
対象のファイルが整形されたXML文書(xhtmlで記述されたファイル)の場合、次のスクリプトでneoCoreへストアできる。
<?php
/**
*
*/
// neoCore関数のインクルード
include('neoCore.functions.php');
// neoCoreセッション開始
$sid = getsession("userid", md5("password"));
// xml文書の保存
$result = store($sid, file_get_contents("test.html"));
// neoCoreセッションの終了
endsession($sid);
//
# header('Content-type: text/xml');
// 結果の表示
# echo $result;
?>
※useridとpasswordは環境に合わせて適宜書き換えのこと
filegetcontentsの引数でストアするhtmlファイルを指定しているので、この引数を変更すれば他のhtmlファイルをストアできる。
実際はxhtmlで書かれていることは少ない(meta、br、input等が閉じられていない事が多い)ので念のためxhtml化し、加えてトランザクション管理を実装すると以下のようになる。
<?php
/**
*
*/
// neoCore関数のインクルード
include('neoCore.functions.php');
// DOMDocumentのインスタンスを生成
$doc = new DOMDocument();
// 余計な空白を削除
$doc->preserveWhiteSpace = false;
// htmlファイルの読み込み
$doc->loadHTMLFile("test.html");
// XML文書化
$xml = $doc->saveXML();
// neoCoreセッション開始
$sid = getsession("userid", md5("password"));
// トランザクションの開始
transaction_start($sid);
// xml文書の保存
$result = store($sid, $xml);
// トランザクションの終了
transaction_commit($sid);
// neoCoreセッションの終了
endsession($sid);
//
header('Content-type: text/xml');
// 結果の表示
echo $result;
?>
loadHTMLFileメソッドで保存対象のhtml をDOMDocumentにする。
これはloadHTMLFileメソッド(およびloadHtmlメソッド)の仕様で整形されたhtmlでなくてもパースできる事を利用している。
この際、妥当でない箇所はPHPのxmlパーサーの解釈によって補てんされるので意図しない結果になる可能性がある。
- ホワイトペーパー
- 話題のタグ
HTML
server
入門
Safari
ブラウザ
小技
Python
JavaScript
Ajax
iPhone
Apple
フレームワーク
Mozilla
Adobe
Apache
開発環境
CSS
XHTML
Webデザイン
リファレンス
Eclipse
RIA
Off Topic
Microsoft
Solaris
CSS 3
Firefox 3
Ruby
Leopard
Webアプリケーション開発
Mac OS X
iPhone 3G
Firefox
C/C++
仮想化
Linux
PHP
イロハ
Flash
Internet Explorer
Tips
Opera
オープンソース
ライブラリ
Java
Google
iPod touch
SOA
Database
Windows
話題のタグを見る »
無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
Firefoxで情報をカンタン・ベンリに整理する
iPhone Safari、Acidテストでは高得点でも…… Firefoxは載らないの?:WebサイトのiPhone 3G対応問題を考える(ソフト編)
WebサイトのiPhone 3G対応問題を考える(ハード編)
フォトレポート:時代を振り返る--「MS-DOS 4」のインストール
SOAと仮想化の関係は?--常に進化を続けるBEAのミドルウェア戦略
ウェブ開発の生産性はどうしたら上がる?--MODIPHI Appsで半日で作るマッシュアップサイト(1)
プロジェクトの進行でよくある4つのトラブル
JailBreakついに:PwnageTool公開
iPhoneに付く指紋が…… ひとまずおすすめのシリコンケース
contentプロパティでコンテンツを追加する(2):FirefoxとSafariのCSS
iPhone 24時間耐久レース:バッテリーは実際何時間?
フォームデザイン虎の巻:フォームの基礎をおさえる
ZDNet Japan Green IT
ZDNet Japan ホスティング特集
Techno Exchange
DELLが掲げる「新・仮想化アセスメントサービス」