soap协议解析href multiRef 格式数据

本文深入探讨了SOAP协议中的href与multiRef格式数据,解析这些复杂结构的方法,并提供了解决处理这类数据时可能遇到的问题的策略。通过实例分析,帮助读者理解如何在实际应用中有效操作和解析multiRef数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上游报文格式变更,没办法,时间紧,手写一版,写死先凑合用,哪位有更好解决方案欢迎指导交流

由<updateType xsi:type="int">2</updateType >

变更为
<updateType href="#id2"/>
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">2</multiRef>


以下为代码;


package xxx.xxx;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.dom4j.*;


public class ParseXml {
    public Map<String,Object>map = new HashMap<String,Object>();
    public static Map<String,Object> hrefMap = new HashMap<String,Object>();
    public static Map<String,Object> multiRefMap = new HashMap<String,Object>();


    public  Map parse(String soap) throws DocumentException{
        Document doc = DocumentHelper.parseText(soap);//报文转成doc对象
        Element root = doc.getRootElement();//获取根元素,准备递归解析这个XML树
        getCode(root);
        for(String str : hrefMap.keySet()){
            map.put(str,multiRefMap.get(hrefMap.get(str).toString().substring(1)));
        }
        return map;
    }

    public  void getCode(Element root){
        if(root.elements()!=null){
            List<Element>list = root.elements();//如果当前跟节点有子节点,找到子节点
            for(Element e:list) {//遍历每个节点
                if (e.elements().size() > 0) {
                    getCode(e);//当
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值