Die Behandlung von XML-Fehlern beim Laden von Dokumenten ist eine sehr einfache Sache. Durch die Verwendung der libxml-Funktionalität ist es möglich, alle XML-Fehlermeldungen beim Laden des Dokuments zu unterdrücken und danach über die aufgetretenen Meldungen zu iterieren.
Das libXMLError-Objekt, das von libxml_get_errors() zurückgegeben wird, hat verschiedene Eigenschaften. Dazu gehören message, line und column (Position) des jeweiligen Fehlers.
Beispiel #1 Laden eines defekten XML-Strings
<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if (!$sxe) {
echo "Laden des XML fehlgeschlagen\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Laden des XML fehlgeschlagen Blank needed here parsing XML declaration: '?>' expected Opening and ending tag mismatch: xml line 1 and broken Premature end of data in tag broken line 1