我們在運行服務器時使用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