我正试图解析来自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值中的任何内容。

最佳答案

在使用savon时,可以将响应转换为散列。转换方法也为您做了一些其他有用的事情。
然后,您可以使用类似于下面的代码获得所需的值

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

查看documentation

10-06 02:37