PHP xml_parse_into_struct() funktion
Definition och användning
xml_parse_into_struct() funktionalitet parserar XML-datan till en array.
Funktionen parserar XML-datan till 2 arrayer:
- Value-array - innehåller data från den parseda XML:n
- Index-array - innehåller pekar till platser i Value-arrayen
Om funktionen lyckas returnerar den 1. Annars returnerar den 0.
Syntaks
xml_parse_into_struct(parser,xml,value_arr,index_arr)
Parameter | Beskrivning |
---|---|
parser | Obligatoriskt. Anger den XML-parser som ska användas. |
xml | Obligatoriskt. Anger XML-datan som ska parsas. |
value_arr | Obligatoriskt. Anger målet för XML-datan. |
index_arr | Valfritt. Anger målet för index-datan. |
Tips och kommentarer
Kommentar:Om xml_parse_into_struct() misslyckas returnerar den 0, om den lyckas returnerar den 1. Detta skiljer sig från false och true, och man måste vara uppmärksam på att använda exempelvis ===-operatorn.
Exempel
XML-fil:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Påminnelse</heading> <body>Glöm inte mötet!</body> </note>
PHP-kod:
<?php //ogiltig xml-fil $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 ) )