3 Stimmen

Wie parse ich eine XML-Datei mit mehreren XML-Deklarationen mit PHP? (Eine Konkatenation mehrerer XML-Dateien)

Format des XML:

und mehrere weitere XML-Deklarationen danach. Übrigens beträgt die Dateigröße 500MB. Ich würde gerne um Hilfe bitten, wie man diese Datei mit PHP analysieren kann, ohne sie in verschiedene Dateien aufzuteilen.

Jede Hilfe wäre willkommen. Danke..

2voto

Gordon Punkte 304254

Wenn Sie die Datei nicht aufteilen möchten, müssen Sie damit im Speicher arbeiten. Bei einer Dateigröße von 500 MB könnte dies problematisch werden. Eine Möglichkeit wäre, den XML-Prolog und DocType aus allen Dokumenten zu entfernen und dann das gesamte Ding so zu laden:

$dom = new DOMDocument;
$dom->loadXML(
    sprintf(
        '%s' .
        '%s' . 
        '%s',
        PHP_EOL, 
        PHP_EOL, 
        str_replace(
            array(
                '', 
                ''
            ),
            '',
            file_get_contents('/pfad/zur/ihrer/datei.xml')
        )
    )
);

Dadurch würde eine riesige XML-Datei entstehen, nur mit einem XML-Prolog und einem DocType (ich gehe davon aus, dass der DocType für alle Dokumente in der Datei gleich ist). Sie könnten dann die Datei verarbeiten, indem Sie über die einzelnen Wurzelelemente iterieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X