Другим вариантом является использование функции libxml_use_internal_errors()
для регистрации ошибок. Ошибки можно затем извлечь с помощью функции libxml_get_errors()
. Это позволит вам просмотреть их, если вы хотите проверить, какие именно ошибки есть. Если вы используете этот метод, вам нужно будет убедиться, что вы удаляете ошибки из памяти, когда закончите с ними, чтобы они не тратили ваше пространство памяти.
Вот пример:
<?php
//Store errors in memory rather than outputting them
libxml_use_internal_errors(true);
$xml = simplexml_load_file('myfile.xml');
if (!$xml){
//Exit because we can't process a broken file
exit;
}
//Important to clear the error buffer
libxml_clear_errors();
//Display your xml code
print_r($xml);
Другой пример, фактически использующий зафиксированные нами ошибки:
<?php
//Store errors in memory rather than outputting them
libxml_use_internal_errors(true);
$xml = simplexml_load_file('myfile.xml');
if (!$xml){
echo "Your script is not valid due to the following errors:\n";
//Process error messages
foreach(libxml_get_errors() as $error){
echo "$error";
}
//Exit because we can't process a broken file
exit;
}
//Important to clear the error buffer
libxml_clear_errors();
//Display your xml code
print_r($xml);