若有疑问,可以联系我本人微信:Y1141100952
声明:本文章为原稿,转载必须说明 本文章地址,否则一旦发现,必追究法律责任
1:本文章显示通过 XML工具-XmlUtil工具实现解析soap报文的xml格式文档的解析,取出里面的数据,放到map的key-value的集合里面,在使用另外的一个工具类实现map映射成java的实体类。本人亲自做过是可以实现的。文档最后会附上soap.xml文档,以供参考。
2: XML工具-XmlUtil的使用说明:(网址:https://hutool.cn/docs/#/core/%E5%B7%A5%E5%85%B7%E7%B1%BB/XML%E5%B7%A5%E5%85%B7-XmlUtil)
pom.xml依赖如下:
<!--hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.15</version>
</dependency>
主要的方法是:XmlUtil.getElements(elements, null);
第一个参数是传入的节点,以得到elements下的所有节点
第二个参数是获取elements下的指定节点以得到数据。如果为null,那么会返回elements下的所有节点。
开始进行报文的解析:
1:首先获取根节点:使用如下的代码即可获取
import org.w3c.dom.Document;
import org.w3c.dom.Element;
// 解析报文得到根节点
Document document = XmlUtil.parseXml(xml); //xml参数为String类型的xml报文,如果是现成的xml文档,你们可以用文件流读取出来再转为String类型
Element root = XmlUtil.getRootElement(document);
2:得到根节点之后,我们再拿根节点调用前文说的主要方法
//根据root得到的根节点,调用下面的方法获得Header ,Body节点
List<Element> elementList1 = XmlUtil.getElements(root, null);
3:我们得到了 Header ,Body节点,但是我们不需要解析Header节点,只需要解析Body节点,故我们继续调用
//根据 elementList1.get(1)取出Body节点 ,获得其下节点:Response