2010-12-06 48 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