Ez a függvény az XML fájlt 2 párhuzamos tömbbe rendezi, ezek közül az egyik, az index mutatókat tartalmaz a másik, a values elemeire. Ezeket a paramétereket referencia szerint kell átadni a függvény számára.
Megjegyzés: Az index tömb az XML elemek nyitó és záró tag-jeit tartalmazza az elemzés időrendiségében, azaz adott elemhez tartozó tag-ek nem feltétlenül egymás után vagy héjszerűen (egymásba ágyazva) szerepelnek. Az index tömb kulcsai a megtalált tag-ek nevei, a hozzájuk tartozó tömbök pedig indexeket tárolnak a values tömbhöz, ahol az adott tag-hez tartozó részletes információkat lehet megtalálni.
Az alábbi példa megvilágítja ezeknek a függvény által visszaadott tömböknek a belső felépítését és kapcsolataikat egymással. Ebben az egyszerű példában a para elem egy note elemet foglal magában:
$xml = "<para><note>egyszerű kis megjegyzés</note></para>"; $parser = xml_parser_create(); xml_parse_into_struct($parser, $xml, $ertek, $index); xml_parser_free($parser); echo "indexek\n"; print_r($index); echo "\nertekek\n"; print_r($ertek); |
indexek
Array
(
[PARA] => Array
(
[0] => 0
[1] => 2
)
[NOTE] => Array
(
[0] => 1
)
)
ertekek
Array
(
[0] => Array
(
[tag] => PARA
[type] => open
[level] => 1
)
[1] => Array
(
[tag] => NOTE
[type] => complete
[level] => 2
[value] => egyszerű kis megjegyzés
)
[2] => Array
(
[tag] => PARA
[type] => close
[level] => 1
)
) |
Az epxat könyvtáron alapuló eseményvezérelt elemzés bonyolult lehet, ha az XML dokumentumnak összetett a szerkezete. Ez a függvény nem DOM stílusú objektumhierarchiát állít elő az elemzést követően, de olyan könnyen kezelhető szerkezetet ad, amit fa szerűen fel lehet dolgozni. Ekképpen, könnyen lehet az XML-t ábrázoló objektumokat létrehozni. Vegyük példaként a következő XML állományt, amely az aminosavak kis információs adatbázisa: