我正在尝试使用 Ruby gem Savon 访问 SOAP 服务。我可以连接到服务并发出请求并接收响应,但我无法解析响应。
响应包含对 multiRef 元素的多个 href 引用。当我尝试使用解码它时
response.to_hash[:get_user_risk_profile_response][:get_user_risk_profile_return][:href]
我得到#id0。如何遵循 id0 参考?
SOAP 响应如下。谢谢!
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getUserStatusResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getUserStatusReturn href="#id0"/>
</getUserStatusResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:UserRiskProfileBean" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://xrisk.api.example.com">
<parameters xsi:type="ns2:ArrayOf_tns3_ParamBean" xsi:nil="true" xmlns:ns2="http://api.example.com"/>
<siteID xsi:type="soapenc:string">UNKNOWN</siteID>
<userID xsi:type="soapenc:string">sam.wiggins</userID>
<userRiskScore href="#id1"/>
<userRiskScoreDT xsi:type="xsd:dateTime">2011-02-16T18:15:50.012Z</userRiskScoreDT>
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">640</multiRef>
</soapenv:Body>
</soapenv:Envelope>