« PHPでのXMLファイルの読込み | メイン | XMLHttpRequestオブジェクトのメソッドとプロパティ »

XML配列構造体の処理

xml_parse_into_structでXMLデータを格納した配列構造体を処理したい場合はどうすれば良いでしょうか?DOMであればdomxml拡張モジュール(PHP4の場合)があります。配列構造体ではforeachで調べていくしかなさそうです。

「PHPでのXMLファイルの読込み」で格納した配列構造体$valsをforeachで処理する簡単なコードを示します。

foreach($vals as $key=>$value){
    if($value[tag]=='TITLE'||$value[tag]=='AUTHOR'){
        echo "key:".$key." ";
        echo $value[tag].'='.mb_convert_encoding($value[value],"SJIS","UTF-8")."\n";
    }
}

$value[tag]=='TITLE'でTITLE要素であるかどうかを調べています。元々のタグはtitleと小文字だったのですが、デフォルト処理でTITLEと大文字に変換されてしまっていることに注意してください。
mb_convert_encoding($value[value],"SJIS","UTF-8")は要素の値である$value[value]をUTF-8からSJISに変換した文字列になります。実行結果は次のようになります。$keyは親配列のインデックスですので、あまり利用価値はないですね。

key:2 TITLE=AJAXの秘密
key:4 AUTHOR=あいう
key:9 TITLE=PHPのオブジェクト
key:11 AUTHOR=けけけ
key:16 TITLE=入門Linux
key:18 AUTHOR=リーナス

トラックバック

このエントリーのトラックバックURL:
http://www.yumemaro.com/apps/mt-tb.cgi/23

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)