如何将XML文件传递给lxml进行解析?
我正在尝试用lxml来解析一个xml文件。之前用xml.etree的时候,我只需要把文件名作为参数传给parse函数就可以了,所以我想用lxml也这样做。
我的代码是:
from lxml import etree
from lxml import objectify
file = "C:\Projects\python\cb.xml"
tree = etree.parse(file)
但是我遇到了这个错误:
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
我哪里做错了呢?
相关问题:
4 个回答
0
你的 XML标记 有一个语法错误。你并没有做错什么。
1
今天早上我遇到了一个类似的错误信息,对我来说,问题出在一个格式不正确的DTD上。在我的DTD里,有一个属性定义的默认值没有用引号括起来——一旦我把它加上,引发的错误就消失了。
1
你做错的地方是 (1) 没有检查一下用 xml.etree 处理同一个文件时的结果是否一样 (2) 没有仔细看错误信息,那个信息告诉你在文件的第二行有语法错误,这个错误和打开文件的问题没有关系。