【问题标题】:PHP libxml error code 68 htmlParseEntityRef: no namePHP libxml 错误代码 68 htmlParseEntityRef:没有名称
【发布时间】:2015-01-08 12:26:12
【问题描述】:

我正在使用 PHP libxml 库来处理 xml 文件。作为此过程的一部分,我设置了 libxml_use_internal_errors(true),从文件中加载 xml 并使用 libxml_get_errors() 检查任何 xml 错误。

这是我的代码:

$filename = $local_dir . $file;
$file_parts = pathinfo($filename);

if ( $file_parts['extension'] != 'xml' ) continue;

$xml_string = file_get_contents($filename);

// check for valid xml
libxml_use_internal_errors(true);

$doc = new DOMDocument('1.0', 'utf-8');

$doc->loadXML( $xml_string );

$xml_errors = libxml_get_errors();

if (!empty($xml_errors) ) {
    echo 'There is an error in file: ' . $file . '<br>';    
    print_r($xml_errors);
    libxml_clear_errors();
    continue;
}

此代码是处理多个 xml 文件的循环的一部分,$filename 变量设置正确。

在我的本地 Wamp 服务器上没有返回错误,但是当我在开发服务器上运行它时,一些 xml 文件出现以下错误:

LibXMLError 对象 (
[等级] => 2
[代码] => 68
[列] => 202
[消息] => htmlParseEntityRef:没有名字
[文件] =>
[行] => 1
)

谁能解释这个错误是什么意思?

谢谢
安东尼拉文

【问题讨论】:

    标签: php xml


    【解决方案1】:

    在您的 XML 中某处是一个空的 &amp;amp;,它是为字符引用的开头保留的。将其更改为&amp;amp;。


    注意:

    如果您使用$doc-&gt;load($filename) 而不是file_get_contents 和loadXML,您将在错误中获得更完整的诊断信息。

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2017-11-12
      • 2014-06-22
      • 2017-10-30
      • 2020-07-21
      • 1970-01-01
      相关资源
      最近更新 更多