liebe Community. Ich stehe derzeit auf dem Schlauch und benötige für den richtigen Umgang mit den zur Verfügung stehenden XML-Daten ‚Starthilfe‘.
Ausgangssituation:
Bisher habe ich Shopdaten als CSV-Datei erhalten und mit Hilfe von PHP in meine DB integriert. Ein neues Projekt erfordert es, dass eine ca. 1,5 GB (!) große XML Datei ausgwertet wird und die Daten in die DB übertragen werden. Meine ersten XML Gehversuche mit einigen XML-Testdatensätzen in Verbindung mit PHP waren erfolgreich und die Daten konnten in die DB integriert werden. Die schiere Größe der Datei zwingt meinen Rechner allerdings in meiner Testumgebung in die Knie. Womöglich liegt dies auch einfach an der falschen Herangehensweise, da XML absolutes Neuland für nich ist. Daher meine konkrete Frage:
Womit lässt sich eine so große XML-Datei am Besten auswerten, um Daten, die bestimmten Kriterien entsprechen, in einer DB zu übernehmen (Programmiersprache (PHP,JAVA), Funktionen)?
Womit lässt sich eine so große XML-Datei am Besten auswerten,
um Daten, die bestimmten Kriterien entsprechen, in einer DB zu
übernehmen (Programmiersprache (PHP,JAVA), Funktionen)?
vermutlich wird die Datei aus einer Vielzahl sich wiederholender Elemente bestehen, das Stichwort dazu wäre SAX (Simple API for XML, http://de.wikipedia.org/wiki/Simple_API_for_XML), dabei ist es nicht notwendig die gesamte XML Datei in den Speicher zu laden. Mit PHP kenne ich mich nicht aus, wie das mit Java Prinzipiell funktioniert ist hier beschrieben: http://openbook.galileocomputing.de/javainsel8/javai…
danke für Deine Antwort. Mit JAVA habe ich bisher nicht wirklich so viel gemacht. Müsste ich mich komplett neu mit auseinandersetzen. Sicherlich aber eine Bereicherung. Dennoch: Hat vielleicht jemand noch einen Tipp für eine Umsetzung mit PHP.
Vielleicht nicht ganz unwichtig: Die Datei wird als Zip zur Verfügung gestellt (dann nur 350 MB) und beinhaltet eine XML und eine XSD Datei.
Hat vielleicht jemand noch einen Tipp für eine Umsetzung mit
PHP.
SAX ist zwar zunächst im Java-Umfeld entstanden, steht aber mittlerweile allgemein für das Prinzip des ereignisorientierten XML-Parsens an sich. Dieser XML-Parser in PHP ist ein SAX-Parser: http://php.net/manual/en/book.xml.php