2013-10-10 73 views
5

如何使用xpath查詢忽略xml名稱空間?我正在使用python lxml庫。我試圖從this問題的解決方案,但似乎沒有工作。lxml中的通配符名稱空間

In [151]: e.find("./*[local-name()='Buckets']") 
    File "<string>", line unknown 
SyntaxError: invalid predicate 

回答

5

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