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: