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:

最新文章

  1. github源码学习之UIImage+YYWebImage
  2. Perforce 与Source Insight, Visual Studio集成
  3. centos 7 /etc/rc.local 开机不执行的问题
  4. 自己模拟实现spring IOC原理
  5. hdu 5254 水题
  6. 教程-DelphiXE7如何调用Java Class,JAR等文件?
  7. Android WebView坑摘要
  8. JavaScript:window.onload问题
  9. 导航栏 .active激活
  10. hihoCoder #1053 : 居民迁移(贪心,二分搜索,google在线技术笔试模拟)
  11. flume1.8 Interceptors拦截器(五)
  12. Windows挂钩注入DLL
  13. CentOS7.2下Nginx的使用
  14. [译]Ocelot - Headers Transformation
  15. php中的冒泡排序和选择排序d
  16. TestNg 9. 参数化测试-DataProvider参数化
  17. echarts入门
  18. 【Quartz】实现接口封装化(二)
  19. Python3基础 list pop(含参) 取出列表中的指定索引的元素
  20. (9)模板层 - templates(模板语言、语法、取值、过滤器、变量的使用)

热门文章

  1. 数据存储-- Core Data的使用(二)
  2. windows环境下使用MySQL导入数据乱码报错的解决办法
  3. New Concept English there (4)
  4. Linux:grub密码设置与修改
  5. web.xml文件模板
  6. Java跨平台的原理--java跨平台是通过JVM实现的
  7. 分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
  8. selenium-java,cookie登陆
  9. BZOJ5301: [Cqoi2018]异或序列(莫队)
  10. threejs Object的点击(鼠标)事件(获取点击事件的object)