如何在Java中从SOAP响应中提取数据?

如何在Java中从SOAP响应中提取数据?,java,soap,soap-client,Java,Soap,Soap Client,我设置了一个客户端,向国家气象服务SOAP服务器发送请求。我收到了预期的回复,但我不确定从中提取所需数据的最佳方法 例如,XML中有很多额外的数据(在SOAPBody中),但我只想获取我为POJO设置的参数(如温度)的数据 提取这些数据的最佳方法是什么?我开始尝试像您描述的那样手动使用SOAP Web服务-有更好的方法 有一些库可以为您完成所有的工作-无需手动解析任何内容 退房。大多数现代IDE(当然还有)也提供了点对点的支持,用于在给定WSDL的情况下构建web服务客户机 这条路线上最大的潜在

我设置了一个客户端,向国家气象服务SOAP服务器发送请求。我收到了预期的回复,但我不确定从中提取所需数据的最佳方法

例如,XML中有很多额外的数据(在SOAPBody中),但我只想获取我为POJO设置的参数(如温度)的数据


提取这些数据的最佳方法是什么?

我开始尝试像您描述的那样手动使用SOAP Web服务-有更好的方法

有一些库可以为您完成所有的工作-无需手动解析任何内容

退房。大多数现代IDE(当然还有)也提供了点对点的支持,用于在给定WSDL的情况下构建web服务客户机

这条路线上最大的潜在问题是,如果没有WSDL,或者WSDL是错误的,在这种情况下,我链接的工具可能会遇到困难

下一个最安全的方法是使用XML解析器,如JAXP的SAX&DOM等(它们就在JRE中),解析响应,然后遍历相关的数据结构


最后,您可以使用拆分或正则表达式进行字符串黑客攻击,但沿着这条路走下去会有很多潜在的痛苦-XML规范比嵌套标记更复杂。

强烈建议您不要尝试手动解码SOAP:)

为了进一步说明@Brabster所说的, Netbeans具有广泛的Web服务支持,特别是使用JAX-WS库


您用来进行SOAP调用的代码是什么?