目前正在使用Java的SOAPConnectionFactory
和SOAPConnection
的{{1}}方法发出SOAP请求,该方法返回.call()
个对象,我想将XPath查询应用于它。这是完全可能的,还是我完全错了?
就我可以解决而言,我必须以某种方式将SOAPMessage
转换为SOAPMessage
,然后我可以将XPath应用到,但我无法理解如何去关于这样做。
谢谢, 彼得
答案 0 :(得分:3)
SOAPBody可以强制转换为Node。所以,你可以像这样使用它:
URL endpoint = new URL("http://www.webservicex.net/whois.asmx");
SOAPMessage message = connection.call(sm, endpoint);
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(new SoapNamespaceContext());
Node resultNode = (Node) xpath.evaluate("//m:GetWhoISResult", message.getSOAPBody(), XPathConstants.NODE);
... do something with resultNode...