Lidando com erros XML

Lidar com erros de XML ao carregar documentos é uma tarefa muito simples. Usando a funcionalidade libxml é possível suprimir todos os erros XML ao carregar o documento e então iterar sobre os erros.

O objeto libXMLError, retornado por libxml_get_errors(), contém várias propriedades incluindo a mensagem, a linha e a coluna (posição) do erro.

Example #1 Carregando string XML quebrada

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><quebrada><xml></quebrada>");
if ($sxe === false) {
    echo "Falha ao carregar o XML\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

O exemplo acima produzirá:

Falha ao carregar o XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and quebrada
    Premature end of data in tag quebrada line 1