我需要编写一个动态函数来查找 ATOM xml 文档的子树上的元素。
为此,我写了这样的东西:
tree = etree.parse(xmlFileUrl)
e = etree.XPathEvaluator(tree, namespaces={'def':'http://www.w3.org/2005/Atom'})
entries = e('//def:entry')
for entry in entries:
mypath = tree.getpath(entry) + "/category"
category = e(mypath)
上面的代码找不到类别。
原因是 getpath 返回一个没有命名空间的 XPath,而 XPathEvaluator e() 需要命名空间。
有没有办法让 getpath 在路径中返回命名空间,或者允许 XPathEvaluator 接受路径而不指定命名空间(或者,更确切地说,以其他方式指定它)?