dom4j解析xml数据

工作中一个新接口要求传送xml格式数据,习惯了json格式,xml这里记录下,帮自己学习。

贴一张百度到的属性图。

       for(int i = 0;i<dv.size();i++) {
             // 转换xml格式。
            Document document = DocumentHelper.createDocument();
            Element root = document.addElement("in0");
            // 添加注释
            root.addComment("待办数据");
            // 根节点下添加参数子节点
            for(int j = 0 ;j<dv.getColumns().size();j++) {
                 //字段名作为结点名称
                String key = dv.getColumnName(j);
                Element info = root.addElement(key);
                // 节点添加属性
                info.setText(dv.get(i).getString(key));
            }        
            TodoRequest(document);
        }

将得到一个数据集转换成xml格式,字段名作为结点,值作为内容。

for(int i = 0;i<dv.size();i++) {
			String bf = "";
	        for(int j = 1 ;j<dv.getColumns().size();j++) {
	        	String key = dv.get(i).getColumnName(j);
	        	String value =dv.get(i).getString(key);
	        	//拼接xml字符串 转移符替代尖括号
	        	bf+= "<"+key+">"+value+"</"+key+">"; 
	        }        
	        TodoRequest(data);
	     // System.out.println(data);
}

将得到的数据集转换成xml格式的字符串,这种适合接口之间传输,然后得到对应的xml返回数据,可以解析为对象取值。

public static void readxmlstr(String result) throws Exception{
        //转换为xml对象
        Document doc = DocumentHelper.parseText(result);
        //读取根结点
		Element rootElt = doc.getRootElement(); 
        //找到数据集结点
		Iterator iter = rootElt.elementIterator("ResultInfo"); 
        while (iter.hasNext()) {
			Element recordEle = (Element) iter.next();
            // 拿到ResultInfo节点下的子节点message值
			String message = recordEle.elementTextTrim("message"); 
			String dataType = recordEle.elementTextTrim("dataType"); 
			String operResult = recordEle.elementTextTrim("operResult");
			String syscode = recordEle.elementTextTrim("syscode");
			String operType = recordEle.elementTextTrim("operType");	
            
            //这里可以做具体的数据处理
            dosomgthing();
		 }		

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值