Ich versuche und brauche etwas Hilfe bei der Durchführung der folgenden:Stream Parse 4 GB XML-Datei in PHP
Ich möchte streamen eine große XML-Datei (4 GB) mit PHP parsen. Ich kann kein einfaches XML oder DOM verwenden, weil sie die gesamte Datei in den Speicher laden, also brauche ich etwas, das die Datei streamen kann.
Wie kann ich das in PHP tun?
Was ich versuche zu tun ist, durch eine Reihe von <doc>
Elemente zu navigieren. Und schreiben Sie einige ihrer Kinder in eine neue XML-Datei.
Die XML-Datei Ich versuche, sieht wie folgt zu analysieren:
<feed>
<doc>
<title>Title of first doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
<links>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
</link>
</doc>
<doc>
<title>Title of second doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
<links>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
</link>
</doc>
</feed>
Ich versuche, alle Kinder jedes <doc>
Element in eine neue XML-Datei zu erhalten/kopieren mit Ausnahme des <links>
Element und seine Kinder .
Deshalb möchte ich die neue XML-Datei wie folgt aussehen:
<doc>
<title>Title of first doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
</doc>
<doc>
<title>Title of second doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
</doc>
ich stark jegliche Hilfe in Streaming/Stream-Parsing/Strom Lesen der ursprünglichen XML-Datei schätzen würde und dann einen Teil seiner Inhalte zu schreiben zu einer neuen XML-Datei in PHP.
Schauen Sie sich die XMLReader Klasse: http: //www.php.net/manual/en/intro.xmlreader.php Es ist ein Streaming-Parser. Ich lese gerade Ihre Frage tiefer, um zu sehen, ob ich mit spezifischeren Antworten helfen kann. – DeeDee
@DeeDee Ich hatte von XMLReader gehört, wusste aber nicht, wie man es benutzt. Danke für die Hilfe! –
Sicher! Es wird nicht zu stark verwendet, wie der Mangel an Kommentaren in der offiziellen Dokumentation zeigt. Ich selbst habe es schon sehr lange nicht mehr benutzt. Können Sie mich wissen lassen, wie mein Code funktioniert? Wenn es nicht sofort funktioniert, können wir zusammenarbeiten und herausfinden, was los ist. – DeeDee