2010-12-06 56 views
0

我通過使用libxml2.0解析xml文件,代碼如下。未能加載外部實體xml文件

我收到錯誤,因爲無法加載外部實體。

xmlDocPtr xmlDocumentPtr = xmlParseFile(inXMLFilePath.c_str()); 

我得到空指針xmlDocPtr xmlDocumentPtr;

這可能是什麼原因?

回答

0

XML是否有DTD?可以通過引用URI來嵌入或包含DTD。錯誤意味着DTD有一個外部實體,libxml2找不到它的定義。檢查DTD是否爲<!ENTITY entity_name ...>。實體聲明可能引用無法找到的URI。

另一種可能性是XML在任何DTD中引用沒有聲明的實體,例如, &entity_name;出現在XML中,但沒有相應的<!ENTITY entity_name ...>聲明。

此外,錯誤消息應具有實體的名稱或DTD之後的DTD的URI。做到了?

+0

現在它已修復。只是錯過了文件路徑。 – boom 2010-12-10 04:12:09