j'utilise lxml comme suit pour analyser un fichier XML exporté d'un autre système:lxml entité unicode parse problèmes
xmldoc = open(filename)
etree.parse(xmldoc)
Mais im obtenir:
lxml.etree.XMLSyntaxError: Entity 'eacute' not defined, line 4495, column 46
De toute évidence, il a des problèmes avec l'entité unicode noms - mais comment pourrais-je contourner cela? Via open() ou parse()?
Edit: j'avais oublié d'inclure ma DTD dans le même dossier - il est là maintenant et a la déclaration suivante:
<!ENTITY eacute "é">
et est appelé (et a toujours été) en xmldoc comme si:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE DScribeDatabase SYSTEM "foo.dtd">
Pourtant, j'ai toujours le même problème ... la DTD doit-elle être déclarée aussi en Python?
J'ai essayé d'ajouter le dtd, le fichier, mais pas le doctype, qui manquait. Mais j'ai toujours la même erreur. –
Assurez-vous que vous utilisez 'etree.XMLParser (load_dtd = True)' (passé à 'etree.parse()') pour qu'il utilise réellement la DTD. – bobince