Обработка ошибок в XML-документах

Ошибки при загрузке XML-документов обрабатывают функциями модуля libxml, которыми возможно подавить все XML-ошибки, а затем обработать каждую ошибку отдельно.

Объект LibXMLError, который возвращает функция libxml_get_errors(), содержит ряд свойств, в том числе сообщение, номер строки и колонку, или позицию, ошибки.

Пример #1 Загрузка XML-строки с неправильным синтаксисом

<?php

libxml_use_internal_errors(true);

$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");

if (!$sxe) {
    echo "Ошибка загрузки XML\n";

    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}

?>

Результат выполнения приведённого примера:

Ошибка загрузки 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

Смотрите также