我尝试使用lxml从AWS REST API读取响应,但没有任何运气。我可以轻松地解析响应并打印它,但find
或xpath
函数都找不到任何内容。例如,请参阅此文档片段:
<DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2013-11-11/">
<CallerReference>e6d6909d-f1ed-47f1-83d9-290acf10f324</CallerReference>
<Aliases>
<Quantity>1</Quantity>
<Items>
这段代码:
from lxml import etree
root = etree.XML( ... )
node = root.find( 'Quantity' )
node
始终为None
。我尝试了各种xpath,例如//Quanity
,.//Quantity
以及xpath
功能,但无法找到任何内容。
如何在此类文档中使用此库?
答案 0 :(得分:1)
似乎你还需要提供元素的命名空间:
>>> root.find('.//aws:Quantity', namespaces={'aws': 'http://cloudfront.amazonaws.com/doc/2013-11-11/'})
<Element {http://cloudfront.amazonaws.com/doc/2013-11-11/}Quantity at 0xb6c16aa4>