我们在运行服务器时使用XMLReader时遇到问题,而在我们的开发服务器上一切运行正常。在阅读XML文件时,XMLReader总是抛出一个“解析器错误:文档末尾的额外内容”。无论它包含数千个元素还是只包含一行。XMLReader在几乎空的xml文件上报告“文档末尾的额外内容”
$reader = new \XMLReader();
$reader->open($xmlFileName, 'UTF-8');
while ($reader->read()) { ... do nothing ... }
$reader->close();
的XML看起来像这样以最简单的形式:
<?xml version="1.0" encoding="UTF-8"?>
<data><articles><![CDATA[test]]></articles></data>
每个XML验证说,这是良好的形成,但误差仍然抛出。
我可以在我们的发展,我们的生活系统之间发现的唯一区别是,我们的开发系统(Ubuntu的)有libxml2的版本2.7.16,而直播系统(CentOS的)有2.6.16。这可能是原因吗?
什么的XML文件显示十六进制转储(即有没有在最后不可见的内容)? – Richard 2011-06-10 09:27:40
生产服务器库和PHP环境是使用RPM安装还是上传并构建?换句话说,你是用手还是用RPM创建'php-xml'? – benosteen 2011-06-10 09:30:04
难道你的* real * XML有多个根元素? – Tomalak 2011-06-10 09:30:52