lxml中的通配符名称空间 [英] Wildcard namespaces in lxml
本文介绍了lxml中的通配符名称空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用xpath忽略xml名称空间进行查询?我正在使用python lxml库.我尝试了此问题的解决方案,但似乎没有用
How to query using xpath ignoring the xml namespace? I am using python lxml library. I tried the solution from this question but doesn't seem to work.
In [151]: e.find("./*[local-name()='Buckets']")
File "<string>", line unknown
SyntaxError: invalid predicate
推荐答案
Use e.xpath
, not e.find
:
import lxml.etree as ET
content = '''\
<Envelope xmlns="http://www.example.com/zzz/yyy">
<Header>
<Version>1</Version>
</Header>
<Buckets>
some stuff
</Buckets>
</Envelope>
'''
root = ET.fromstring(content)
print(root.xpath("./*[local-name()='Buckets']"))
# [<Element {http://www.example.com/zzz/yyy}Buckets at 0xb73a62ac>]
这篇关于lxml中的通配符名称空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文