dom4j使用的小例子

product.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<product>
<index id="1">交换机</index>
<index id="2">传送网</index>
<index id="3">WLAN</index>
<index id="4">路由器</index>
</product> <scene>
<index id="1">规划</index>
<index id="2">实施</index>
<index id="3">维护</index>
</scene>
</root>
代码:
package com.cy.test; import java.io.File;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class ReadXmlFile {
public static void main(String[] args) throws Exception{
String path = URLDecoder.decode(ReadXmlFile.class.getClassLoader().getResource("").getPath(), "UTF-8") + "product.xml"; SAXReader reader = new SAXReader();
Document document = reader.read(new File(path)); //获取文档的根节点
Element root = document.getRootElement(); //获取product的节点
Element element = root.element("product");
List<Element> proList = element.elements();
for(Element e: proList){
String value = e.getTextTrim();
Attribute attr = e.attribute("id");
String key = attr.getValue();
System.out.println("key:" + key + "--value:" +value);
} //获取scene节点
Element sElement = root.element("scene");
List<Element> sList = sElement.elements();
for(Element e : sList){
String value = e.getTextTrim();
String key = e.attributeValue("id");
System.out.println("key:" + key + "----value:" + value);
} //将xml转化为map
Map<Integer, String> prodcutMap = xml2Map(path);
for (Map.Entry<Integer, String> entry : prodcutMap.entrySet()) {
System.out.println("键= " + entry.getKey() + " and 值= " + entry.getValue());
}
} //将xml转化为map
public static Map<Integer, String> xml2Map(String path) throws Exception{
Map<Integer, String> productMap = new HashMap<Integer, String>();
Document document = new SAXReader().read(path);
Element root = document.getRootElement(); //获取根节点
Iterator<Element> it = root.element("product").elementIterator(); //获取根节点下的子节点product下面的所有节点
while(it.hasNext()){
Element e = (Element) it.next();
Integer key = Integer.parseInt(e.attributeValue("id"));
String value = e.getTextTrim();
productMap.put(key, value);
} return productMap;
}
}
//可以将上面xml2Map改装,传入节点名字,nodeName,然后输出map
console:

dom4j使用的小例子的更多相关文章
- Dom4j的一个小例子,用于解析xml文件的元素获取方式(转)
import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationExcepti ...
- Dom4j的一个小例子,用于解析xml文件的元素获取方式
import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationExcepti ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- Spring和Hibernate结合的一个小例子
1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...
- springmvc入门的第一个小例子
今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...
- java即时通信小例子
学习java一段时间了,今天写来一个即时通信的小例子练手在其过程中也学到了一些知识拿出来和大家分享,请路过的各位大神多多赐教... 好了下面讲一下基本的思路: 首先,编写服务器端的程序,简单点说吧就是 ...
- Runtime的几个小例子(含Demo)
一.什么是runtime(也就是所谓的“运行时”,因为是在运行时实现的.) 1.runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数); [runti ...
- bootstrap 模态 modal 小例子
bootstrap 模态 modal 小例子 <html> <head> <meta charset="utf-8" /> <title ...
- INI配置文件分析小例子
随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...
随机推荐
- pulltoRefresh类图
- trigger 触发器(mysql)
/* 触发器 tigger 引出触发器: 在进行数据库应用软件的开发的时候,我们有时候会碰到表中的某些数据改变,同事希望引起其他相关数据改变的需求,这时候就需要使用触发器. 运用触发器可以简化程序,增 ...
- MoreEffectiveC++Item35(异常)(条款9-15)
条款9 使用析构函数防止内存泄漏 条款10 在构造函数中防止内存泄漏 条款11 禁止异常信息传递到析构函数外 条款12 理解"抛出一个异常''与"传递一个参数"或调用一个 ...
- CUDA Samples: Streams' usage
以下CUDA sample是分别用C++和CUDA实现的流的使用code,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第十章,各个文件内容如 ...
- charles抓包--手机端
Fiddler和charles都是抓包工具,可以抓到pc端的请求,手机上设置代理后也可以抓到手机上的请求,也可以修改请求数据和返回的数据. 在接口已经使用的时候,比如说已经用到了app上,app端测试 ...
- 配置wampserver 虚拟主机
1.修改http.conf 找到,#Include conf/extra/httpd-vhosts.conf,修改为(有的版本服务器,默认是开启的): 2.配置httpd-vhosts.conf文件, ...
- 解决h5py的FutureWarning问题
h5py/__init__.py:: FutureWarning: Conversion of the second argument of issubdtype from `float` to `n ...
- UICollectionView功能使用
UICollectionView在2012年被提出,已经不是什么新技术了,在此只是做一下简单的实现. 集合视图:UICollectionViewUICollectionView和UITableView ...
- 使用vue
使用bootstrap npm install bootstrap@3 --save 使用jQuery npm install jQuery --save ---------------- 搭建vue ...
- Chrome调试javacript禁止缓存
/********************************************************************* * Chrome调试javacript禁止缓存 * 说明: ...