gpt4 book ai didi

没有命名空间的 Python XpathEvaluator

转载 作者:行者123 更新时间:2023-11-28 17:49:22 25 4
gpt4 key购买 nike

我需要编写一个动态函数来查找 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 接受路径而不指定命名空间(或者更确切地说,以其他方式指定它)?

最佳答案

使用:

*[local-name() = 'category']

或者,如果你想更精确:

*[local-name() = 'category' and namespace-uri() = 'http://www.w3.org/2005/Atom']

或者简单地:

def:category

关于没有命名空间的 Python XpathEvaluator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com