2017-07-15 88 views
0
特定項目

我提出到Salesforce的請求合併API和得到這樣的迴應:解析XML使用ElementTree的

xml_result = '<?xml version="1.0" encoding="UTF-8"?> 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:partner.soap.sforce.com"> 
    <soapenv:Header> 
     <LimitInfoHeader> 
      <limitInfo> 
       <current>62303</current> 
       <limit>2680000</limit><type>API REQUESTS</type></limitInfo> 
     </LimitInfoHeader> 
    </soapenv:Header> 
    <soapenv:Body> 
     <mergeResponse> 
      <result> 
       <errors> 
        <message>invalid record type</message> 
        <statusCode>INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY</statusCode> 
       </errors> 
       <id>003skdjf494244</id> 
       <success>false</success> 
      </result> 
     </mergeResponse> 
    </soapenv:Body> 
</soapenv:Envelope>' 

我希望能夠解析,如果成功= false該響應,返回錯誤,statusCode和消息文本。

我已經試過如下:

import xml.etree.ElementTree as ET 
tree = ET.fromstring(xml_result) 

root.find('mergeResponse') 
root.find('{urn:partner.soap.sforce.com}mergeResponse') 
root.findtext('mergeResponse') 
root.findall('{urn:partner.soap.sforce.com}mergeResponse') 

...和一堆findfindtextfindall其他變化,但我似乎無法得到這些返回任何結果。這裏是我卡住的地方。我試圖遵循ElementTree文檔,但我不明白如何解析特定元素的樹。

回答