3 Stimmen

Laden eines fehlerhaften XML in PHP

Ich habe ein XML-Dokument, das ich mit PHP laden muss. Aktuell verwende ich die Funktion simplexml_load_file(), jedoch ist die XML-Datei fehlerhaft und ich erhalte daher einen Parse-Fehler.

Die XML-Datei sieht ungefähr so aus:

...
something1>

`

Wie du sehen kannst, ist dieses XML durcheinander und diese Funktion wirft einen Fehler beim Versuch, es zu parsen. Außerdem benötige ich diese korrupten Daten nicht. Ich möchte einfach nur die Sachen einlesen, die ich kann, und den Rest wegwerfen.

`

2voto

Juliusz Gonera Punkte 4419

Wie von Jonah Bron vorgeschlagen, versuchen Sie es mit DOMDocument::loadHTML():

$dom = new DOMDocument();
$dom->strictErrorChecking = false;
libxml_use_internal_errors(true);

$dom->loadHTML($xml);

1voto

@Juliusz

Sie müssen diese strictErrorChecking nicht tatsächlich festlegen, denke ich. Ich habe Folgendes versucht und es scheint gut zu funktionieren. Um die Fehler zu ignorieren, müssen Sie libxml_use_internal_errors(true) setzen. Im Wesentlichen möchten Sie DOMDocument anstelle von simplexml verwenden. Ich habe Folgendes ausprobiert und es hat ohne Probleme funktioniert:

    login
    Richard

XML;

$dom = new DOMDocument();
libxml_use_internal_errors(true); 
$dom->loadHTML($string);
print $dom->saveHTML();

?>

Thusjanthan Kubendranathan

0voto

Zoltan Lengyel Punkte 340

Versuchen Sie, es aufzuräumen, es hat gut für mich funktioniert.

http://hu2.php.net/manual/en/intro.tidy.php

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