我在字符串中有此XML数据:
<?xml version="1.0" encoding="UTF-8"?>
<class name="C" kind ="concrete">
<inheritance>
<from name="A" privacy="public" />
<from name="B" privacy="public" />
</inheritance>
<private>
<methods>
<method name="C" type="C" scope="instance">
<arguments></arguments>
</methods>
</private>
</class>
我想找到一些使用xpath的元素。到目前为止,这是我的代码:
utf8_parser = etree.XMLParser(encoding='utf-8')
root = etree.fromstring(string.encode('utf-8'), parser=utf8_parser)
somelist = root.findall(xpathString)
我收到此错误:
root = etree.fromstring(stringOutput.string.encode('utf-8'), parser=utf8_parser)
File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68106)
File "parser.pxi", line 1785, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102455)
File "parser.pxi", line 1673, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:101284)
File "parser.pxi", line 1074, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:96466)
File "parser.pxi", line 582, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:91275)
File "parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:92461)
File "parser.pxi", line 622, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:91757)
lxml.etree.XMLSyntaxError: expected '>', line 11, column 11
我认为问题可能出在字符串中的双引号上。是否可以?使用xpath查找元素的正确代码应该是什么样的?
限定属性值的双引号是完全可以的,但是method
缺少end标记的元素则不是。这是将您的XML修改为格式正确的文件:
<?xml version="1.0" encoding="UTF-8"?>
<class name="C" kind ="concrete">
<inheritance>
<from name="A" privacy="public" />
<from name="B" privacy="public" />
</inheritance>
<private>
<methods>
<method name="C" type="C" scope="instance">
<arguments></arguments>
</method>
</methods>
</private>
</class>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句