4

Savon SOAP api からの次の SOAP 応答を解析しようとしています。

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <ns:getConnectionResponse xmlns:ns="http://webservice.jchem.chemaxon">
            <ns:return>
                <ConnectionHandlerId>connectionHandlerID-283854719</ConnectionHandlerId>
            </ns:return>
        </ns:getConnectionResponse>
    </soapenv:Body>
</soapenv:Envelope>

libxml-ruby を使用しようとしていますが、成功していません。基本的に、タグと connectionHandlerID 値内のすべてを抽出したいと考えています。

4

2 に答える 2

5

Savon を使用しているため、応答をハッシュに変換できます。変換メソッドresponse.to_hashは、他にもいくつかの便利なことを行います。

次のようなコードを使用して、必要な値を取得できます。

hres = soap_response.to_hash
conn_handler_id = hres[:get_connection_response][:return][:connection_handler_id]

ドキュメントを確認する

于 2010-04-29T06:46:15.567 に答える
2

のこぎりがおすすめです。

XML 応答が response という名前のオブジェクトにあると仮定します。

require 'nokogiri'
doc = Nokogiri::XML::parse response
doc.at_xpath("//ConnectionHandlerId").text
于 2010-04-27T19:01:04.443 に答える