Funkcja PHP xml_parse_into_struct()
Definicja i użycie
Funkcja xml_parse_into_struct() przetwarza dane XML do tablicy.
Funkcja ta przetwarza dane XML do 2 tablic:
- Tablica Wartości - zawiera dane z przetworzonego XML
- Tablica Indeksów - zawiera wskaźniki do wartości w tablicy Value
Jeśli sukces, funkcja zwraca 1. W przeciwnym razie zwraca 0.
Gramatyka
xml_parse_into_struct(parser,xml,value_arr,index_arr)
Parametry | Opis |
---|---|
parser | Wymagane. Określa parser do użycia. |
xml | Wymagane. Określa XML do przetworzenia. |
value_arr | Wymagane. Określa docelową tablicę danych XML. |
index_arr | Opcjonalnie. Określa docelową tablicę danych index. |
Wskazówki i komentarze
Komentarz:xml_parse_into_struct() zwraca 0 przy błędzie, 1 przy sukcesie. Różni się od false i true, uważaj na operator ===.
Przykład
Plik XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
Kod PHP:
<?php //nieprawidłowy plik XML $xmlfile = 'test.xml'; $xmlparser = xml_parser_create(); // Otwórz plik i przeczytaj dane $fp = fopen($xmlfile, 'r'); $xmldata = fread($fp, 4096); xml_parse_into_struct($xmlparser,$xmldata,$values); xml_parser_free($xmlparser); print_r($values); ?>
Wyjście:
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] => Przypomnienie ) [6] => Array ( [tag] => NOTE [value] => [type] => cdata [level] => 1 ) [7] => Array ( [tag] => BODY [type] => complete [level] => 2 [value] => Nie zapomnij o spotkaniu! ) [8] => Array ( [tag] => NOTE [value] => [type] => cdata [level] => 1 ) [9] => Array ( [tag] => NOTE [type] => close [level] => 1 ) )