对xml文件的解析dom4j

本篇写于微信公众号的xml消息包的解析,通过HttpServletRequest请求来获得xml



package org.gxj.util;



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


import javax.servlet.http.HttpServletRequest;


import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class Dom4j_Xml_Util {


public static Map<String, String> dom4j_xml(HttpServletRequest request) throws DocumentException, IOException {
// 创建sax io流,用于读取xml人间
SAXReader read = new SAXReader();
// 将xml文件读取到获取的document对象中
org.dom4j.Document doc = read.read(request.getInputStream());
//org.dom4j.Document doc = read.read(new File("D:/jsdzworkspace/weixin-web/src/NewFile.xml"));测试方法是否好用
// 用Document对了来创建根节点
Element root = doc.getRootElement();

Map<String, String> map = new HashMap<String, String>();

map = recur_xml(root, map);//这块调用的下面的递归解析xml的方法

// //得到根节点下所有的子节点
// List<Element> elementslist = root.elements();
// //遍历list获得值封装到map中 先创建map对象
// Map<String,String>map = new HashMap<String,String>();
// for (Element element : elementslist) {
// map.put(element.getName(), element.getText());
// }
return map;
}


// 接下来的方法是递归获取xml文件中的值
public static Map<String, String> recur_xml(Element root, Map<String, String> map) {
// 每次进来的时候,都是一个根节点,通过根结点来获取他的子节点
List<Element> elementslist = root.elements();
// 然后判断子节点的大小
if (elementslist.size() == 0) {
map.put(root.getName(), root.getText());
} else {
for (Element element : elementslist) {
recur_xml(element, map);
}
}
return map;
}






}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值