用DOM4J的XML解析式拿不到节点的。所以网上利用DOM4J提供的VisitorSupport解决此问题。不废话,直接看代码:
package com.starhub.util;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.VisitorSupport;
public class SOAPUtil extends VisitorSupport{
private String eaId;
private String tranId;
private String response;
private String msisdn;
public void visit(Element node) {
if ("EAID".equals(node.getName())) {
this.setEaId(node.getText());
}else if("Response".equals(node.getName())){
this.setResponse(node.getText());
}else if("TranID".equals(node.getName())){
this.setTranId(node.getText());
}else if("MSISDN".equals(node.getName())){
this.setMsisdn(node.getText());
}
}
public static void main(String[] args) {
String soapResponse = "<SOAP-ENV:Envelope\r\n" +
"xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\""+
" SOAP-ENV:encodingStyle=\"\">"+
"<SOAP-ENV:Body>"+
"<EAID>GameCode_ext</EAID>"+
"<TranID>11102</TranID>"+
"<Response>0100</Response>"+
"</SOAP-ENV:Body>"+
"</SOAP-ENV:Envelope>";
SOAPUtil util = new SOAPUtil();
try {
util.analysis(soapResponse);
} catch (DocumentException e) {
e.printStackTrace();
}
System.out.println(util.getEaId());
}
public void analysis(String soapContent) throws DocumentException {
Document doc = DocumentHelper.parseText(soapContent);
doc.accept(this);
}
public String getEaId() {
return eaId;
}
public void setEaId(String eaId) {
this.eaId = eaId;
}
public String getTranId() {
return tranId;
}
public void setTranId(String tranId) {
this.tranId = tranId;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public String getMsisdn() {
return msisdn;
}
public void setMsisdn(String msisdn) {
this.msisdn = msisdn;
}
}
参考资料:
http://www.blogjava.net/ITdavid/archive/2008/01/16/175646.html
分享到:
相关推荐
本篇文章将深入探讨如何利用DOM4J解析SOAP消息中的元素,以便在实际项目中进行有效的数据提取和操作。 首先,理解SOAP消息的结构至关重要。一个典型的SOAP消息如下所示: ```xml <soap:Envelope xmlns:soap=...
这个“dom4j-2.0.2.rar”压缩包包含了DOM4J库的版本2.0.2,这是一个流行的版本,具有对Java集合框架的良好集成以及对Java 5及以上版本的支持,包括泛型的使用。 DOM4J的核心概念主要围绕XML文档对象模型(Document ...
在VMware ESXi开发中,由于vim25和vijava的API响应通常是以XML格式返回,因此dom4j库非常重要。它可以解析返回的XML数据,帮助开发者轻松提取出需要的信息,或者构建请求时构造XML格式的参数。`dom4j-2.0.1-sources....
在IT行业中,Web服务是应用程序...通过HttpClient发送SOAP请求,并利用Dom4j解析返回的XML数据,可以有效地与Web服务进行交互并处理结果。理解并掌握这些技术对于任何Java开发者在处理Web服务集成时都是至关重要的。
服务端暴露一个URL,客户端可以通过HTTP POST请求发送SOAP消息到这个URL,服务端接收到消息后,使用DOM4J解析XML,执行相应的业务逻辑,再返回响应的SOAP消息。 在实际应用中,Web服务可能还需要考虑安全性、性能...
客户端则使用SOAP客户端库来构造SOAP消息,发送到服务器,并解析服务器返回的响应。这些库通常会自动处理XML编码、SOAP enveloping以及网络传输等细节。 总结来说,Java SOAP Server的实现依赖于这些核心库,它们...
在Java环境中,xerces.jar为开发者提供了强大的XML处理功能,包括DOM(Document Object Model)、SAX(Simple API for XML)和DOM4J等API,便于进行XML数据的读取、解析和生成。 在Apache SOAP中,xerces.jar作为...
5. **JDOM, DOM4J, XOM等XML解析库**:这些库提供了处理XML文档的不同方式,比如JDOM提供了Java对象模型来操作XML,DOM4J是基于DOM的解析器,而XOM提供了一个更简洁的API。虽然JAX-WS默认使用DOM,但有时候开发者...
在这个服务中,DOM4j被用来解析从新浪天气预报页面抓取的XML数据,提取出如城市、温度、湿度等天气信息。 3. **Web Services接口设计**:开发者可能定义了一套API接口,包括方法和参数,使得外部程序可以调用这些...
2. **axis-wsdl4j.jar**:这个jar包包含了wsdl4j库,用于解析和处理WSDL文件。它帮助客户端从WSDL文档中获取服务的地址、操作方法和消息结构等信息。 3. **activation.jar**:该jar包提供了JavaBeans Activation ...
DOM4J提供了一套完整的DOM、SAX和JDOM接口,便于XML处理;另外,Java标准库中的javax.xml.parsers和org.w3c.dom包也提供了基本的XML读写支持。 在实际开发中,XML常用于配置文件、数据交换、SOAP(Simple Object ...
8. **DOM4J和JDOM**:在Java开发中,DOM4J和JDOM是常用的XML处理库,提供了方便的API进行XML解析、操作和生成。 9. **XML与JSON**:虽然XML功能强大,但JSON因其简洁性和易用性在现代Web应用中更为流行。两者各有...
XML的解析库和工具很多,如Java的JAXB、DOM4J,Python的lxml,JavaScript的DOMParser等。学习XML,不仅要理解其基本语法,还需要掌握解析和处理XML的方法,以及如何利用XML实现数据交换和存储。 总结来说,XML是一...
数据解析可能涉及XML解析库如TinyXML或DOM4J,或JSON解析库如Gson或Jackson,将接收到的数据转化为可操作的Java对象。 4. **百度地图API**: 百度地图API提供了一系列服务,包括定位、路线规划、地理编码等功能。...
- **DOM4J、JDOM**:Java平台上的XML处理库。 - **lxml**:Python中的高效XML处理库。 - **XML Schema Tools**:用于生成或验证XSD的工具,如XMLSpy。 在“XML高级编程”中,你会学习如何有效地利用这些概念和...
这些库通常包括axis.jar、axis-wsdl4j.jar、commons-discovery.jar、commons-logging.jar、jaxrpc.jar和wsdl4j.jar等。这些库包含了处理SOAP消息、解析WSDL文件以及与Webservice交互所需的所有功能。 2. **获取WSDL...
Android提供了Gson库用于解析JSON,对于XML,可使用如Jackson或Dom4j进行解析。 5. **异常处理**:考虑网络不稳定或服务器错误的情况,需编写异常处理代码。 6. **异步处理**:为了防止网络操作阻塞主线程,通常在...
此代码片段展示了如何通过DOM4J库读取XML文件,以及如何在Java中处理可能出现的异常情况。 #### 总结 本文通过具体的Java代码示例,详细介绍了在Tomcat环境下利用Apache Axis框架开发WebService的方法。从环境搭建...
4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最...