2010-12-06 9 views
0

libxml2.0を使用してXMLファイルを解析していますが、コードは以下のとおりです。外部エンティティxmlファイルの読み込みに失敗しました

外部エンティティの読み込みに失敗したとエラーが表示されます。

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

ポインタxmlDocPtr xmlDocumentPtrに対してnullが返されています。

この理由は何ですか?

答えて

0

XMLにDTDがありますか? DTDは、URIへの参照によって埋め込まれるか、含まれることがあります。このエラーは、DTDに外部エンティティがあり、libxml2がDTDの定義を見つけられなかったことを示しています。 DTDで<!ENTITY entity_name ...>を確認してください。エンティティ宣言は、見つからなかったURIを参照することがあります。

もう1つの可能性は、XMLが任意のDTDで宣言のないエンティティを参照することです。 &entity_name;がXMLに表示されますが、対応する<!ENTITY entity_name ...>宣言はありません。

また、エラーメッセージの後にDTDのエンティティ名またはURIがあるはずです。それをやった?

+0

これで修正されました。ちょうどファイルパスを逃した。 – boom