我想解析一个XML文件使用lxml。 xml.etree允许我简单地将文件名作为参数传递给parse
函数,所以我试图用lxml做同样的事情。如何将xml文件传递给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
我在做什么错?
正如在接受的答案中所说的,'lxml'在这里没有任何问题,所以对问题进行了低估。也许重新命名问题的标题将避免错误地搜索此模块上的问题。 – 2011-10-18 08:41:15
@Joel - 我的问题标题并不意味着'lxml'有什么问题 - 只是我将文件传递给lxml解析的方式可能有问题。如果你可以建议一个替代标题,那么我会很乐意承认(从你的评论中你不清楚你认为我应该改变它)。 – BeeBand 2011-10-20 15:10:11
嗡嗡声。奇怪的是,我现在可以看到标题没有错:/所以也许我错过了正确的问题,并错误地勾选了你的问题!而且,如果不编辑问题,我无法删除downvote。如果你做一些编辑来解锁它,我很乐意纠正我的错误。 – 2011-10-20 15:42:18