0

SOAP から次の応答があります。

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
 <env:Body>
  <env:Fault>
   <env:Code>
    <env:Value>env:Receiver</env:Value>
    <env:Subcode>
     <env:Value>-10</env:Value>
    </env:Subcode>
   </env:Code>
   <env:Reason>
    <env:Text xml:lang="en">10001069 - Item 804006 not active </env:Text>
   </env:Reason>
   <env:Detail>
    <Object xmlns="">17</Object>
    <ObjectIndex xmlns="">1</ObjectIndex>
    <Command xmlns="">AddObject</Command>
    <SessionID xmlns="">58711</SessionID>
   </env:Detail>
  </env:Fault>
 </env:Body>
</env:Envelope>

ReasonPython のようにtag にアクセス/知りたい:print ObjectXML.Body.Reason.Text たとえば、ノード内の移動にドット表記を使用したい。どのように私はそれを行う?.

前もって感謝します。

4

1 に答える 1

1

cElement API を使用して、Python オブジェクトの観点から XML タグへのハンドルを取得し、次の activestate レシピを使用して XML を dict 表現に変換できます (小さい XML ファイルにのみ推奨されます。レシピのコードにはいくつかの変更が必要になる場合があります)。

import xml.etree.cElementTree as ElementTree
import XmlDictConfig as XmlDictConfig

if __name__ == "__main__":
  string_containing_my_xml = "read your XML into a string".
  root = ElementTree.parse(StringIO.StringIO(string_containing_my_xml)).getroot()
  xmldict = XmlDictConfig(root) // XmlDictConfig is available in activestate recipe.

http://code.activestate.com/recipes/410469-xml-as-dictionary/

ご不明な点がございましたらお知らせください。

于 2013-02-20T10:43:41.963 に答える