dom4j使用的小例子
2024-09-29 05:33:35
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:
最新文章
- github源码学习之UIImage+YYWebImage
- Perforce 与Source Insight, Visual Studio集成
- centos 7 /etc/rc.local 开机不执行的问题
- 自己模拟实现spring IOC原理
- hdu 5254 水题
- 教程-DelphiXE7如何调用Java Class,JAR等文件?
- Android WebView坑摘要
- JavaScript:window.onload问题
- 导航栏 .active激活
- hihoCoder #1053 : 居民迁移(贪心,二分搜索,google在线技术笔试模拟)
- flume1.8 Interceptors拦截器(五)
- Windows挂钩注入DLL
- CentOS7.2下Nginx的使用
- [译]Ocelot - Headers Transformation
- php中的冒泡排序和选择排序d
- TestNg 9. 参数化测试-DataProvider参数化
- echarts入门
- 【Quartz】实现接口封装化(二)
- Python3基础 list pop(含参) 取出列表中的指定索引的元素
- (9)模板层 - templates(模板语言、语法、取值、过滤器、变量的使用)
热门文章
- 数据存储-- Core Data的使用(二)
- windows环境下使用MySQL导入数据乱码报错的解决办法
- New Concept English there (4)
- Linux:grub密码设置与修改
- web.xml文件模板
- Java跨平台的原理--java跨平台是通过JVM实现的
- 分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
- selenium-java,cookie登陆
- BZOJ5301: [Cqoi2018]异或序列(莫队)
- threejs Object的点击(鼠标)事件(获取点击事件的object)