用python解析AmazonXML
我从AmazonWeb服务中获得了以下XML用python解析AmazonXML,python,amazon-web-services,Python,Amazon Web Services,我从AmazonWeb服务中获得了以下XML <aws:UrlInfoResponse> <aws:Response> <aws:OperationRequest> <aws:RequestId>8789797</aws:RequestId> </aws:OperationRequest> <aws:UrlInfoResult>
<aws:UrlInfoResponse>
<aws:Response>
<aws:OperationRequest>
<aws:RequestId>8789797</aws:RequestId>
</aws:OperationRequest>
<aws:UrlInfoResult>
<aws:Alexa>
<aws:TrafficData>
<aws:DataUrl type="canonical">google.com/</aws:DataUrl>
<aws:Rank>1</aws:Rank>
</aws:TrafficData>
</aws:Alexa>
</aws:UrlInfoResult>
<aws:ResponseStatus>
<aws:StatusCode>Success</aws:StatusCode>
</aws:ResponseStatus>
</aws:Response>
</aws:UrlInfoResponse>
这里的问题是,您试图在XML元素上使用replace,该元素不是列表,也不是字符串,它将具有.replace() 由于您是通过使用
=getElementsByTagName('aws:Rank')[0]
来挑选元素(元素对象),因此您只有一件事要做
您可以通过以下方式访问所需的数据:
itemlist.firstChild.data
或
(@root,你有这个权利,我不知道你为什么被否决)
现在我在解析XML时遇到了一些问题,因为名称空间没有绑定,但这并不是什么大问题
可能更清楚的是片段本身:
xmldoc = minidom.parse(response)
xmlElement = xmldoc.getElementsByTagName('aws:Rank')[0]
xmlData = xmlElement.firstChild.nodeValue
print xmlData
但老实说,您可能希望在minidom中查看元素对象的信息:
您从哪里了解到“itemlist”(一种列表类型)支持replace()方法?
itemlist
是一个元素,而不是字符串。您只需要使用.innerHTML
或minidom调用该属性的任何东西。@RashanGandi--itemlist不是列表。
itemlist.firstChild.data
itemlist.firstChild.nodeValue
xmldoc = minidom.parse(response)
xmlElement = xmldoc.getElementsByTagName('aws:Rank')[0]
xmlData = xmlElement.firstChild.nodeValue
print xmlData