我正在尝试使用 Python 解析非常简单的 XML。
在 Python 3 之前,我使用带有 XPath 功能的“webscraping”库。工作非常简单:
xpath.search(xml (xml string), "XPath Query (//search)"
- 根据提供的 XPath 查询返回找到的元素。
现在我决定切换到 Python 3,并且上面提到的库不能正常工作(即使在 2to3.py 之后) - 所以我决定使用本机xml.etree.ElementTree
库。
可能我不明白什么,但这是正确的噩梦。它在您简单地向函数中提供 XML 和 XPath 查询并返回结果的方式中不起作用。相反,您需要使用 10 多行代码,弄乱元素的子元素等,但它仍然无法正常工作......
import xml.etree.ElementTree as ET
doc = ET.fromstring(xml)
result = doc.findall("//XPath Query")
返回SyntaxError: cannot use absolute path on element
添加.
到//XPath Query
也没有多大帮助。
是否有某种原因导致库如此复杂ElementTree
并且lxml
不允许简单地使用 XPATH 而不是弄乱元素、for
每次都使用循环等?
任何人都可以推荐只使用 XPath 查询并返回结果的 python 3 简单库吗?