PHP xml_parse_into_struct() 関数
定義と使用法
xml_parse_into_struct() 関数は XML データを配列に解析します。
この関数は XML データを 2 つの配列に解析します:
- Value 配列 - 解析された XMLからのデータを含みます
- Index 配列 - Value 配列の値の位置を指すポインタを含みます
成功した場合、この関数は 1 を返します。それ以外の場合は 0 を返します。
文法
xml_parse_into_struct(parser,xml,value_arr,index_arr)
パラメータ | 説明 |
---|---|
parser | 必須。使用する XML パーサーを指定します。 |
xml | 必須。解析する必要のある XML データを指定します。 |
value_arr | 必須。XML データのターゲット配列を指定します。 |
index_arr | オプション。index データのターゲット配列を指定します。 |
ヒントとコメント
コメント:xml_parse_into_struct() が失敗すると 0 を返し、成功すると 1 を返します。これは false と true とは異なり、例えば === 演算子を使用する際には注意が必要です。
例
XML ファイル:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>リマインダー</heading> <body>会議を忘れないで!</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] => Array ( [tag] => NOTE [type] => open [level] => 1 [value] => ) [1] => Array ( [tag] => TO [type] => complete [level] => 2 [value] => George ) [2] => Array ( [tag] => NOTE [value] => [type] => cdata [level] => 1 ) [3] => Array ( [tag] => FROM [type] => complete [level] => 2 [value] => John ) [4] => Array ( [tag] => NOTE [value] => [type] => cdata [level] => 1 ) [5] => Array ( [tag] => HEADING [type] => complete [level] => 2 [value] => Reminder ) [6] => Array ( [tag] => NOTE [value] => [type] => cdata [level] => 1 ) [7] => Array ( [tag] => BODY [type] => complete [level] => 2 [value] => Don't forget the meeting! ) [8] => Array ( [tag] => NOTE [value] => [type] => cdata [level] => 1 ) [9] => Array ( [tag] => NOTE [type] => close [level] => 1 ) )