dom4j 解析xml

 

dom4j 解析xml

源码:http://download.csdn.net/detail/ht_00001/9520367

需要的jar包:dom4j-1.6.1.jar  和   jaxen-1.1.6.jar

导入文件:

SAXReader reader = new SAXReader();
return reader.read(new File(path));


// 获取跟节点
Element rootElement = document.getRootElement();
// 获取节点名称
String name = rootElement.getName();
// 获取所有的子元素
List<Element> elments = rootElement.elements();
// 获取所有的节点名为note的子元素
List<Element> noteElments = rootElement.elements("note");
// 获取第一个节点名为note的子节点
Element element = rootElement.element("note");
// 获取节点的属性值
String attr = element.attributeValue("id");
// 获取节点的所有属性
List<Attribute> attrList = element.attributes();

dom4j对xpath的支持

不含命名空间的xml解析

String xpath;

xpath = "//*/*[@id]"; // 当前节点下获取所有包含id 属性的节点
xpath = "//*/*[@id = 'from1']"; // 当前节点下获取所有包含id = from1 的节点
xpath ="//*/note";   // 当前节点下查询所有的note节点
xpath = "/notes/note[1]"; //查询notes下面的的地2个note节点  从1开始计数
xpath ="/notes/note[last()]";   //获取notes下的最后一个节点
List note = rootElement.selectNodes(xpath);


包含命名空间的xml解析

String xpath;
xpath = "//*/*[@id]"; // 获取所有包含id 属性的节点
xpath = "//*/*[@id = 'from1']"; // 获取所有包含id = from1 的节点
Map map = new HashMap();
map.put("c", "http://www.w3school.com.cn");
map.put("b", "http://www.w3.org/2001/XMLSchema-instance");
xpath = "//*/c:note";   //所有包含 note的节点(命名空间为:http://www.w3school.com.cn)
//节点名称实际为 :命名空间:节点名
xpath = "/c:notes/c:note";      //查询notes下面的所有note节点
xpath = "//*/b:from"; //获取xsi命名空间下的from节点


XPath test = rootElement.createXPath(xpath);
test.setNamespaceURIs(map);
List note = test.selectNodes(rootElement);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值