0

我在数据库中有几个我定期检查的 XML 提要。我如何处理数据:

我从数据库加载这些 XML 链接,并循环通过simplexml_load_file()我正在解析数据。但有时脚本会因为 XML 文件格式错误导致的错误而终止,例如:

Warning: simplexml_load_file() [function.simplexml-load-file]: URL_ADDRESS:1: parser error : Invalid XML encoding name in path_to_script on line 98

Warning: simplexml_load_file() [function.simplexml-load-file]: <?xml version="1.0" encoding=""?> in path_to_scriptp on line 98

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in path_to_script on line 98

Warning: Invalid argument supplied for foreach() in path_to_script on line 99

有没有办法处理这个错误,当发生错误时,会跳过这个 XML 提要,脚本会继续下一个吗?

4

2 回答 2

1

使用libxml_use_internal_errors()抑制所有 XML 错误,然后使用libxml_get_errors()对其进行迭代。

来源

于 2013-01-25T18:04:24.740 回答
1

如果 Docs加载文件失败,会返回. 如果您使用选项Docs也不会报告错误。simplexml_load_filefalseLIBXML_NOERROR

所以你需要做的就是检查返回值:

foreach ($files as $file)
{
    $xml = simplexml_load_file($file, null, LIBXML_NOERROR);

    if ($xml === false) {
        continue;
    }

    ... process $xml ...
}

在线演示:http ://codepad.viper-7.com/EXG7VP

于 2013-01-27T15:03:57.080 回答