別のシステムからエクスポートされた XML ファイルを解析するために、次のように lxml を使用しています。
xmldoc = open(filename)
etree.parse(xmldoc)
しかし、私は得ています:
lxml.etree.XMLSyntaxError: エンティティ 'eacute' が定義されていません、行 4495、列 46
明らかに、Unicode エンティティ名に問題がありますが、どうすればこれを回避できますか? open() または parse() 経由ですか?
編集:同じフォルダーに自分の DTD を含めるのを忘れていました。現在そこにあり、次の宣言があります。
<!ENTITY eacute "é">
xmldoc では次のように参照されます (常に参照されていました)。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE DScribeDatabase SYSTEM "foo.dtd">
それでも私は同じ問題を抱えています... PythonでもDTDを宣言する必要がありますか?