Ks-Product.com

PHPでのXML:DOMの操作方法。

PHPではDOMでノードの操作ができます(XMLやXHTMLのタグに直接アクセスできる)。

まず、馴染みの深い(あくまでも自分はだけど)Flash(as2.0)でのDOMの指定例。


var myXML = new XML(); //XMLインスタンスを作成
myXML.load("sample.xml"); //XML文書よみこみ

/* onLoadイベント発生後… */
trace(myXML.firstChild.nodeName); //ルート要素ノード名を出力

続いてPHP4での例


$dom = domxml_open_file("sample.xml"); //DOMドキュメントインスタンス生成
$root = $dom->first_child(); //ルート要素ノードを返す
echo $root->node_name(); //ルート要素ノード名を出力

続いてPHP5での例(テスト環境が無いので未チェック)


$dom = new DOMDocument(); //DOMドキュメントインスタンスを生成
$dom->load("sample.xml"); //XML読込
echo $dom->firstChild->nodeName; //ルート要素ノード名を出力

FlashとPHP5は構文がほとんど同じなので、FlashでDOMを習得していれば移行が容易かと。

問題はPHP4。いくつか大きな違いがある。
まず、first_child、node_nameなどネーミングが独自のもの。(規則性はあるので難しくは無い。)
次に、first_child、node_nameなどがDOMの規格ではプロパティであるのに、PHP4ではメソッドとして扱われている。これが厄介。$dom->first_child->node_name;という具合に連続してノードを辿れない。つまり、$node=$dom->first_child();というように変数に代入してやる必要がある。(もしかしたら他にも記述方があるのかも知れないけど。。。)

追記:


$dom = domxml_open_file("sample.xml"); //DOMドキュメントインスタンス生成
$root = $dom->first_child(); //ルート要素ノードを返す
echo $root->node_name(); //ルート要素ノード名を出力

とするよりも


$dom = domxml_open_file("sample.xml"); //DOMドキュメントインスタンス生成
$root = $dom->document_element(); //ルート要素ノードを返す
echo $root->node_name(); //ルート要素ノード名を出力

のほうが確実。
$dom->first_child();だとファイル構成によっては上手くルート要素を取得できないみたい。

コメント(0)

コメントが存在しません。

コメントを投稿する

※投稿されたコメントは管理人が承認するまで反映されません。
またHTMLタグはご利用できません。コメント上にHTMLタグを表示させたい場合は全角でご入力ください。

お名前
サイトURL
コメント
  • Home
  • > PHPでのXML:DOMの操作方法。
名前:
kakeruニコ動twitter
職業:
neet(転職活動中)
生年月日:
1983年4月19日

Flash(ActionScript)で食っていけたらなと思う今日この頃…とりあえず、年末年始にかけて転職活動できるようにごにょごにょ…

Powered by Movable Type.

ご覧の環境ではこのコンテンツはご利用できません。
最新のFlashPlayerをダウンロードしてからご利用ください。
Get Adobe Flash player