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