将XPath查询应用于Java中的SOAPMessage

时间:2010-06-28 22:11:38

标签: java xml soap xpath

目前正在使用Java的SOAPConnectionFactorySOAPConnection的{​​{1}}方法发出SOAP请求,该方法返回.call()个对象,我想将XPath查询应用于它。这是完全可能的,还是我完全错了?

就我可以解决而言,我必须以某种方式将SOAPMessage转换为SOAPMessage,然后我可以将XPath应用到,但我无法理解如何去关于这样做。

谢谢, 彼得

1 个答案:

答案 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...