0
我試圖從這個XML中獲取2個元素的值(Result和AuthenticationKey)。 <s:Envelope>
語法正在拋棄我。嘗試解析Python中的XML響應
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<AuthenticateResponse xmlns="http://remote.Services">
<AuthenticateResult xmlns:a="http://schemas.datacontract.org/2004/07/remote.Services.Api.DataContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<AdditionalInfo i:nil="true"/>
<ErrorMessage i:nil="true"/>
<ErrorMessageId i:nil="true"/>
<ErrorMessages i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
<InternalId>0</InternalId>
<RecordsAffected>0</RecordsAffected>
<Result>true</Result>
<WarningMessages i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
<a:AuthenticationKey>SUPERSECRETTOKEN</a:AuthenticationKey>
<a:UserGrpId>YYY</a:UserGrpId>
<a:UserId>XXX</a:UserId>
</AuthenticateResult>
</AuthenticateResponse>
</s:Body>
</s:Envelope>
以下是返回None的相關代碼行。兩行代碼都返回一個None。
我試圖使用從另一個問題上的代碼在stackoverflow,但我不知道如何在這個特定的XML的find方法中引入名稱空間。
tree = ElementTree.fromstring(resp.text)
token = tree.find("AuthenticateResponse") #Option1
token = tree.find("Envelope/Body/AuthenticateResponse/AuthenticateResult/AuthenticationKey") #Option2
print token
可能的重複http://stackoverflow.com/questions/14853243/parsing-xml-with-namespace-in-python-via-elementtree – Milo