comment passer un fichier xml à lxml pour analyser?
Je suis en train d'essayer de parser un fichier xml à l'aide de lxml. xml.programme etree m'a permis de passer simplement le nom de fichier comme paramètre à la parse
fonction, j'ai donc essayé de faire la même chose avec lxml.
Mon code:
from lxml import etree
from lxml import objectify
file = "C:\Projects\python\cb.xml"
tree = etree.parse(file)
mais j'obtiens l'erreur:
Traceback (most recent call last):
File "cb.py", line 5, in <module>
tree = etree.parse(file)
File "lxml.etree.pyx", line 2698, in lxml.etree.parse (src/lxml/lxml.etree.c:4
9590)
File "parser.pxi", line 1491, in lxml.etree._parseDocument (src/lxml/lxml.etre
e.c:71205)
File "parser.pxi", line 1520, in lxml.etree._parseDocumentFromURL (src/lxml/lx
ml.etree.c:71488)
File "parser.pxi", line 1420, in lxml.etree._parseDocFromFile (src/lxml/lxml.e
tree.c:70583)
File "parser.pxi", line 975, in lxml.etree._BaseParser._parseDocFromFile (src/
lxml/lxml.etree.c:67736)
File "parser.pxi", line 539, in lxml.etree._ParserContext._handleParseResultDo
c (src/lxml/lxml.etree.c:63820)
File "parser.pxi", line 625, in lxml.etree._handleParseResult (src/lxml/lxml.e
tree.c:64741)
File "parser.pxi", line 565, in lxml.etree._raiseParseError (src/lxml/lxml.etr
ee.c:64084)
lxml.etree.XMLSyntaxError: AttValue: " or ' expected, line 2, column 26
Ce que je fais mal?
source d'informationauteur BeeBand
Vous devez vous connecter pour publier un commentaire.
Ce que vous faites mal, c'est (1) pas de vérifier si vous avez obtenu le même résultat en utilisant
xml.etree
sur le même fichier (2) ne pas lire le message d'erreur qui indique une erreur de syntaxe à la ligne 2 du fichier, le chemin vers le bas de flux à partir de n'importe quel fichier d'ouverture de problèmeJe suis tombé sur un message d'erreur similaire ce matin, et pour moi, la réponse a été un mal formé DTD. Dans ma DTD, il y avait une définition d'Attribut avec une valeur par défaut qui n'a pas été mis entre guillemets - dès que j'ai changé, l'erreur ne se produit plus.
Vous avez une erreur de syntaxe dans votre Balisage XML. Vous ne faites rien de mal.
lxml vous permet de charger un xml endommagé par la création d'un analyseur exemple avec récupérer=True
Alors que ce n'est pas l'idéal, je l'utilise pour charger un fichier xml pour le schéma/dtd/validation schematron.