libxml2.0を使用してXMLファイルを解析していますが、コードは以下のとおりです。外部エンティティxmlファイルの読み込みに失敗しました
外部エンティティの読み込みに失敗したとエラーが表示されます。
xmlDocPtr xmlDocumentPtr = xmlParseFile(inXMLFilePath.c_str());
ポインタxmlDocPtr xmlDocumentPtrに対してnullが返されています。
この理由は何ですか?
libxml2.0を使用してXMLファイルを解析していますが、コードは以下のとおりです。外部エンティティxmlファイルの読み込みに失敗しました
外部エンティティの読み込みに失敗したとエラーが表示されます。
xmlDocPtr xmlDocumentPtr = xmlParseFile(inXMLFilePath.c_str());
ポインタxmlDocPtr xmlDocumentPtrに対してnullが返されています。
この理由は何ですか?
XMLにDTDがありますか? DTDは、URIへの参照によって埋め込まれるか、含まれることがあります。このエラーは、DTDに外部エンティティがあり、libxml2がDTDの定義を見つけられなかったことを示しています。 DTDで<!ENTITY entity_name ...>
を確認してください。エンティティ宣言は、見つからなかったURIを参照することがあります。
もう1つの可能性は、XMLが任意のDTDで宣言のないエンティティを参照することです。 &entity_name;
がXMLに表示されますが、対応する<!ENTITY entity_name ...>
宣言はありません。
また、エラーメッセージの後にDTDのエンティティ名またはURIがあるはずです。それをやった?
これで修正されました。ちょうどファイルパスを逃した。 – boom