繁体   English   中英

如何使用lxml在AWS响应中查找元素(命名空间问题?)

[英]How to lookup element in AWS response with lxml (namespace issue?)

我正在尝试使用lxml从AWS REST API读取响应,但是没有任何运气。 我可以轻松地解析并打印响应,但是findxpath函数都找不到任何东西。 例如,获取以下文档片段:

<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 ,. //Quanity .//Quantity以及xpath函数,但找不到任何东西。

如何在此类文档上使用此库?

似乎您还需要提供元素的名称空间:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM