PHP libxml错误代码68 htmlParseEntityRef:没有名字

时间:2015-01-08 12:26:13

标签: php xml

我正在使用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对象(
    [level] =&gt; 2
    [code] =&gt; 68
    [column] =&gt; 202
    [message] =&gt; htmlParseEntityRef:没有名字
    [file] =&gt;
    [line] =&gt; 1

任何人都可以解释这个错误的含义吗?

谢谢你 安东尼拉文

1 个答案:

答案 0 :(得分:0)

XML中的某个地方是一个裸&,它是为字符引用的开头保留的。将其更改为&amp;


注意:

如果您使用$doc->load($filename)代替file_get_contentsloadXML,您将在错误中获得更完整的诊断信息。