用dom4j解析Webservice接口返回的XML

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

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

public class Analysis {
    public
    Map<String,Object> map = new HashMap<>();

    public  Map parse(String soap) throws DocumentException {
        Document doc = DocumentHelper.parseText(soap);//报文转成doc对象
        Element root = doc.getRootElement();//获取根元素,准备递归解析这个XML树
        getCode(root);
        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);//当前节点不为空的话,递归遍历子节点;
                }
                if(e.elements().size()==0){
                    map.put(e.getName(), e.getTextTrim());
                }//如果为叶子节点,那么直接把名字和值放入map
            }
        }
    }
}
已标记关键词 清除标记
相关推荐
第一次接触接口 ,对方给了我两个资料,一个说明,main.java 就是让我取出我们数据库中的数据,name不变,根据name取出数据存入value写成xml,在线等大神帮助 1.说明: 功能:数据归档 方法定义: int archive(String username,String password,String objectXml, String params) 参数说明: Username:数据归档的用户名。 Password:数据归档的密码。 objectXml:归档数据的XML形式,示例如下: <?xml version="1.0" encoding="GBK"?> ![图片说明](https://img-ask.csdn.net/upload/201611/07/1478528985_615457.jpg) params:归档参数信息,请保持空字符串 返回值: 归档的状态。 状态说明: 1:代表归档成功,2:代表登录失败,3:代表xml解析失败,4:代表数据唯一性检测失败,5:代表必填项为空,6:代表字段值类型不正确 7:代表不符合规定的值范围,8:代表格式校验不正确。 下面是方法: package cn.csg.soa.dagl; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub ReferArchiveService referArchiveService = new ReferArchiveServiceImplService() .getReferArchiveServiceImplPort(); File f = new File("E:/Archivedata.xml"); FileInputStream in = new FileInputStream(f); byte b[] = new byte[(int) f.length()]; // 创建合适文件大小的数组 in.read(b); // 读取文件中的内容到b[]数组 in.close(); System.out.println(new String(b)); referArchiveService.archive("gly", "123qwe!@#", new String(b), ""); System.out.println(new String(b)); System.out.println(new String(b)); } }
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页