gpt4 book ai didi

c++ - lxml._ElementTree.getpath(element) 返回 "*"而不是非默认 namespace 中元素的标签名称

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:42 24 4
gpt4 key购买 nike

请帮助使 getpath() 返回 getpath() xpath 中的完整标记名称或找到解决方法

我正在尝试为 lxml.etree._ElementTree 中的元素生成 xpath。 ElementTree 是通过解析来自某些生产 Web 服务的 600Kb 响应生成的。

print elem.getroottree().getpath(elem)

这是我得到的结果:

'/S:Envelope/S:Body/ns5:getPhysicalResponse/*[18]/*[12]/*[6]/*[2]'

很遗憾,我无法发布原始 xml - 它包含专有客户信息。我还尝试使用自动生成的具有 100 个嵌套级别的简单元素树重现此结果,每个级别有 100 个子级但没有运气 - getpath() 返回带有完整标签名称的 xpath。

更新调查lxml source code - 它指向 libxml2 库中的 tree.h xmlGetNodePath 方法。所以这实际上是 libxml2 行为。

更新做更多的测试我发现每次当标签有非默认命名空间时都会发生这种情况。

最佳答案

根据需要使用 getelementpath() 和后处理命名空间。

关于c++ - lxml._ElementTree.getpath(element) 返回 "*"而不是非默认 namespace 中元素的标签名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15509599/

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