我正在使用libxml2.0解析xml文件,代码如下所示。
我收到错误,因为无法加载外部实体。
xmlDocPtr xmlDocumentPtr = xmlParseFile(inXMLFilePath.c_str());
我为指针xmlDocPtr xmlDocumentPtr
获取null这可能是什么原因?
答案 0 :(得分:0)
XML是否有DTD?可以通过引用URI来嵌入或包含DTD。该错误意味着DTD具有外部实体,并且libxml2无法找到它的定义。检查DTD <!ENTITY entity_name ...>
。实体声明可能引用无法找到的URI。
另一种可能性是XML在任何DTD中引用没有声明的实体,例如&entity_name;
出现在XML中,但没有相应的<!ENTITY entity_name ...>
声明。
此外,错误消息应该具有实体的名称或DTD之后的URI。是吗?