関数プロトタイプ: int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )
パラメータの説明: @param-->$parser XML パーサー、によって駆動されるxml_parser_create() は XML リソース ハンドルを生成します。
@param-->$data 解析済みの XML 文字列。
@param--> &$value 解析が完了した後に生成されるデータ配列。
通常は以下が含まれます: 1. タグ名 (例:
2. タグのステータス (またはタイプ)、
3. XML 解析番号のレベルは、
4 にあります。
@param-->&$index 解析後に生成される配列 $value 内の要素の値に対応するインデックス配列0からカウントが完了します。たとえば、
例:
<?php$xml=<<<XML<?xml version="1.0"?><moldb> <molecule> <name>Alanine</name> <symbol>ala</symbol> <code>A</code> <type>hydrophobic</type> </molecule> <molecule> <name>Lysine</name> <symbol>lys</symbol> <code>K</code> <type>charged</type> </molecule></moldb>XML;$parse = xml_parser_create();xml_parser_set_option($parse, XML_OPTION_CASE_FOLDING, 1);xml_parser_set_option($parse, XML_OPTION_SKIP_WHITE, 1);$val = array();$index = array();xml_parse_into_struct($parse, $xml, $val, $index);echo "<pre class="brush:php;toolbar:false">";print_r($val);echo "<br />";print_r($index);echo "";?>
Array( [0] => Array ( [tag] => MOLDB [type] => open [level] => 1 ) [1] => Array ( [tag] => MOLECULE [type] => open [level] => 2 ) [2] => Array ( [tag] => NAME [type] => complete [level] => 3 [value] => Alanine ) [3] => Array ( [tag] => SYMBOL [type] => complete [level] => 3 [value] => ala ) [4] => Array ( [tag] => CODE [type] => complete [level] => 3 [value] => A ) [5] => Array ( [tag] => TYPE [type] => complete [level] => 3 [value] => hydrophobic ) [6] => Array ( [tag] => MOLECULE [type] => close [level] => 2 ) [7] => Array ( [tag] => MOLECULE [type] => open [level] => 2 ) [8] => Array ( [tag] => NAME [type] => complete [level] => 3 [value] => Lysine ) [9] => Array ( [tag] => SYMBOL [type] => complete [level] => 3 [value] => lys ) [10] => Array ( [tag] => CODE [type] => complete [level] => 3 [value] => K ) [11] => Array ( [tag] => TYPE [type] => complete [level] => 3 [value] => charged ) [12] => Array ( [tag] => MOLECULE [type] => close [level] => 2 ) [13] => Array ( [tag] => MOLDB [type] => close [level] => 1 ))Array( [MOLDB] => Array ( [0] => 0 [1] => 13 ) [MOLECULE] => Array ( [0] => 1 [1] => 6 [2] => 7 [3] => 12 ) [NAME] => Array ( [0] => 2 [1] => 8 ) [SYMBOL] => Array ( [0] => 3 [1] => 9 ) [CODE] => Array ( [0] => 4 [1] => 10 ) [TYPE] => Array ( [0] => 5 [1] => 11 ))
<moldb><--0--> <molecule><--1--> <name>Alanine</name><--2--> <symbol>ala</symbol><--3--> <code>A</code><--4--> <type>hydrophobic</type><--5--> </molecule><--6--> <molecule><--7--> <name>Lysine</name><--8--> <symbol>lys</symbol><--9--> <code>K</code><--10--> <type>charged</type><--11--> </molecule><--12--></moldb><--13-->