Hallo,
ich habe eine XML-Datei, die ich mit expat parse.
Aufruf in php:
Die Datei ist eine normale XML-Datei mit einem root-Element.
Soweit klappt auch alles.
In dieser XML-Datei gibt es nun Verweise auf andere Daten, die in anderen XML-Dateien stehen. Ist eine Option in meinem Menü gesetzt, sollen auch diese geparst und an die entsprechende Stelle eingefügt werden.
Dazu habe ich einen "subparser" geöffnet, der die 2. XML Datei parst und nach dem entsprechenden Element sucht und es samt Unterelementen einfügt.
Dies klappt solange, wie alle weiteren Daten in einer XML-Datei stehen.
Deshalb glaube ich auf dem richtigen Weg zu sein.
Da es hier allerdings um sehr sehr viel Daten geht, sollen die Zusatzinfos in mehrere Dateien gesplittet werden.
Dazu habe ich beim "subparser" die foreach Schleife wie folgt modifiziert:
Die Dateien werden wie folgt eingelesen:
Jetzt kommt das Problem:
Schreibe ich die Dateien "erste.xml" und "zweite.xml" als richtige XML-Dateien mit root-Element, nimmt er grundsätzlich nur die 1. Datei und ignoriert die anderen einfach.
Schreibe ich in die erste Datei ein öffnendes root-Element und schließe dieses erst in der letzten Datei, geht es.
Zwar kann ich so arbeiten, aber sauber ist das nicht.
Bitte helft mir. Das muss doch anders gehen.
Danke.
ich habe eine XML-Datei, die ich mit expat parse.
Aufruf in php:
PHP-Code:
foreach($xmlFiles as $elem) {
xml_parse($parser, $elem);
}
Soweit klappt auch alles.
In dieser XML-Datei gibt es nun Verweise auf andere Daten, die in anderen XML-Dateien stehen. Ist eine Option in meinem Menü gesetzt, sollen auch diese geparst und an die entsprechende Stelle eingefügt werden.
Dazu habe ich einen "subparser" geöffnet, der die 2. XML Datei parst und nach dem entsprechenden Element sucht und es samt Unterelementen einfügt.
Dies klappt solange, wie alle weiteren Daten in einer XML-Datei stehen.
Deshalb glaube ich auf dem richtigen Weg zu sein.
Da es hier allerdings um sehr sehr viel Daten geht, sollen die Zusatzinfos in mehrere Dateien gesplittet werden.
Dazu habe ich beim "subparser" die foreach Schleife wie folgt modifiziert:
PHP-Code:
foreach($xmlFiles as $value) {
foreach($value as $elem) {
xml_parse($parser, $elem);
}
}
PHP-Code:
$xmlFiles = array(file("erste.xml"),file("zweite.xml"));
Schreibe ich die Dateien "erste.xml" und "zweite.xml" als richtige XML-Dateien mit root-Element, nimmt er grundsätzlich nur die 1. Datei und ignoriert die anderen einfach.
Schreibe ich in die erste Datei ein öffnendes root-Element und schließe dieses erst in der letzten Datei, geht es.
Zwar kann ich so arbeiten, aber sauber ist das nicht.
Bitte helft mir. Das muss doch anders gehen.
Danke.
Kommentar