Lidiar con los errores XML cuando se cargan documentos es una tarea muy sencilla. Usando la funcionalidad libxml es posible suprimir todos los errores XML cuando se carga un documento y entonces, iterar sobre ellos.
El objeto libXMLError, retornado por libxml_get_errors(), contiene varias propiedades incluyendo el mensaje, línea y columna (posición) del error.
Ejemplo #1 Cargando un string XML erróneo
<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><roto><xml></roto>");
if ($sxe === false) {
echo "Error cargando XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
?>
El resultado del ejemplo sería:
Error cargando XML 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