Wildcard namespaces in lxml

匿名 (未验证) 提交于 2019-12-03 08:46:08

问题:

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 

回答1:

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>] 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!