我有一个客户端设置为向国家气象服务SOAP服务器发送请求。我收到了我期望的回复,但我不确定从中提取数据的最佳方法。
例如,XML中存在大量额外数据(在SOAPBody中),但我只想获取我设置的参数(例如温度)的数据到我的POJO。
提取此数据的最佳方法是什么?
答案 0 :(得分:10)
我开始尝试像你描述的那样手工使用SOAP Web服务 - 有更好的方法。
那里有图书馆可以为你完成所有工作 - 无需手工解析任何东西。
结帐JAX-WS。大多数现代IDE(当然Netbeans和Eclipse)也提供了点击支持,用于在给定WSDL的情况下构建Web服务客户端。
这条路线上最大的潜在问题是,如果没有WSDL,或者WSDL是错误的,在这种情况下,我链接的工具可能很难。
下一个最安全的事情是使用像JAXP的SAX& DOM等(它们就在你的JRE中)解析响应,然后遍历所涉及的数据结构。
最后你可以使用拆分或正则表达式进行字符串黑客攻击路径,但沿着这条路径存在很大的潜在痛苦 - XML规范还有嵌套标记。
答案 1 :(得分:1)
强烈建议您不要手动尝试解码SOAP:)
只是为了扩展@Brabster说的话, Netbeans具有广泛的Web服务支持,尤其是使用JAX-WS库。
http://www.netbeans.org/kb/60/websvc/jax-ws.html#Exercise_3_1