xml_parse_into_struct() 関数は、XML データを配列に解析します。
この関数は XML データを 2 つの配列に解析します。
値配列 - 解析された XML からのデータが含まれます
インデックス配列 - 値配列内の値の位置へのポインタが含まれます
成功すると、関数は 1 を返します。失敗した場合は 0 が返されます。
xml_parse_into_struct(パーサー,xml,value_arr,index_arr)
パラメータ | 説明する |
---|---|
パーサー | 必須。使用する XML パーサーを指定します。 |
XML | 必須。解析する XML データを指定します。 |
値_arr | 必須。 XML データのターゲット配列を指定します。 |
インデックス配列 | オプション。インデックスデータの対象となる配列を指定します。 |
注: xml_parse_into_struct() 関数は、成功した場合は 1 を返し、失敗した場合は 0 を返します。これは TRUE や FALSE とは異なるため、たとえば === 演算子を使用する場合は注意してください。
XMLファイル
<?xml version="1.0"coding="ISO-8859-1"?><note><to>トーベ</to><from>ジャニ</from><見出し>リマインダー</見出し><本文>ドン今週末は私を忘れないでください!</body></note>
PHPコード
<?php//無効な xml ファイル$xmlfile = 'test.xml';$xmlparser = xml_parser_create();// ファイルを開いてデータを読み取ります$fp = fopen($xmlfile, 'r');$xmldata = fread( $fp、 4096);xml_parse_into_struct($xmlparser,$xmldata,$values);xml_parser_free($xmlparser);print_r($values);?>
上記のコードの出力は次のようになります。
Array([0] => 配列 ( [タグ] => 注 [タイプ] => オープン [レベル] => 1 [値] => )[1] => 配列 ( [タグ] => TO [タイプ] = > 完全 [レベル] => 2 [値] => Tove )[2] => 配列 ( [タグ] => 注 [値] => [タイプ] => cdata [レベル] => 1 ) [3] = > 配列 ([タグ] => FROM [タイプ] => 完全な [レベル] => 2 [値] => Jani )[4] => 配列 ( [タグ] => 注 [値] => [タイプ] => cdata [レベル] = > 1 ) [5] => 配列 ( [タグ] => 見出し [タイプ] => 完全 [レベル] => 2 [値] => リマインダー )[6] => 配列 ( [タグ] => 注 [値] ] => [タイプ] => cdata [レベル] => 1 ) [7] => Array ( [タグ] => BODY [タイプ] => 完全な [レベル] => 2 [値] => 今週末は私を忘れないでください! )[ 8] => 配列 ( [タグ] => 注 [値] => [タイプ] => cdata [レベル] => 1 )[9] => 配列 ( [タグ] => 注 [タイプ] => 閉じる [レベル] => 1 ))