Я использую LXML следующим образом разобрать экспортированный файл XML из другой системы:LXML проблемы юникода сущность синтаксического анализа
xmldoc = open(filename)
etree.parse(xmldoc)
Но им получить:
lxml.etree.XMLSyntaxError: Entity 'eacute' not defined, line 4495, column 46
Очевидно, что это возникают проблемы с юникода лица имена - но как мне обойти это? Через open() или parse()?
Edit: я забыл включить мой ОТД в той же папке - это там сейчас и имеет следующее заявление:
<!ENTITY eacute "é">
и называется (и всегда был) в xmldoc, как так:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE DScribeDatabase SYSTEM "foo.dtd">
Но у меня все еще такая же проблема ... нужно ли DTD также объявлять на Python?
Я пробовал добавить файл dtd, файл, но не doctype, для которого не хватало. Но я все равно получаю ту же ошибку. –
Убедитесь, что вы используете 'etree.XMLParser (load_dtd = True)' (переданный в 'etree.parse()'), чтобы фактически использовать DTD. – bobince