Hi,
ich versuche gerade für eins meiner Projekte einen eigenen XML-Prser zu programmieren und zwar möchte ich es möglichst so machen, dass ich mittels einer Funktion und while() bzw. foreach() alle Untercontainer und deren Unterkontainer ausgeben kann. Ein Beispiels XML-File ist hier:
(<?xml.., äußerer Kontainer sind entfernt)
Der Parser soll praktisch jeden Knoten "<buch>" in einem Array auflisten, sodass aber auch wie bei mysql_fetch_array auf die Unterobjekte (in dem Fall: haupttitel, verfasserangabe,...) zugegriffen werden kann:
Also die einzelnen (indem Fall: "<buch>") Knoten kann ich schon auslesen. Diese sind in einem Array gespeichert. Das einzigste problem ist jetzt noch: Wie komme ich dynamisch an den Inhalt aller Unterknoten dran?
Ich dachte vlt mit einer RegEx. Aber wie könnte ich das lösen?
Mein 1. Ansatz:
-> Kommt aber nur Müll bei raus.
Hat irgenjemand einen Tipp für mich?
Danke,
Micronax
ich versuche gerade für eins meiner Projekte einen eigenen XML-Prser zu programmieren und zwar möchte ich es möglichst so machen, dass ich mittels einer Funktion und while() bzw. foreach() alle Untercontainer und deren Unterkontainer ausgeben kann. Ein Beispiels XML-File ist hier:
(<?xml.., äußerer Kontainer sind entfernt)
Code:
<buch> <haupttitel>Auf der Schwelle zum nächsten Jahrtausend</haupttitel> <haupteintrag>Marchand, Pierre Hrsg.</haupteintrag> <verfasserangabe>Pierre Hrsg. Marchand</verfasserangabe> <untertitel>Vom Hochgeschwindigkeitszug zur Gentechnik</untertitel> <ISBN>3-570-08650-X</ISBN> <rückgabedatum></rückgabedatum> </buch> <buch> <haupttitel>Spirou und Fantasio: Das Versteck der Muräne</haupttitel> <haupteintrag>Spirou und Fantasio: Das Versteck der Muräne</haupteintrag> <verfasserangabe></verfasserangabe> <untertitel></untertitel> <ISBN>3-551-01207-5</ISBN> <rückgabedatum></rückgabedatum> </buch> <buch> <haupttitel>Spirou und Fantasio: Der doppelte Fantasio</haupttitel> <haupteintrag>Spirou und Fantasio: Der doppelte Fantasio</haupteintrag> <verfasserangabe></verfasserangabe> <untertitel></untertitel> <ISBN>3-551-01206-7</ISBN> <rückgabedatum></rückgabedatum> </buch>
PHP-Code:
while(function()) {
echo $node["haupteintrag"]." ".$node["verfasserangabe"];
}
Ich dachte vlt mit einer RegEx. Aber wie könnte ich das lösen?
Mein 1. Ansatz:
PHP-Code:
foreach ($containers as $container) {
echo preg_split("<\s*\w*> *[a-zA-Z0-9\S ]*<*\s*>", $container);
}
Hat irgenjemand einen Tipp für mich?
Danke,
Micronax
Kommentar