Dom4j解析XML
2017-03-21 20:16
253 查看
XML文件放在resources目录下
<?xml version="1.0" encoding="UTF-8"?>
<CLASS>
<STUDENT>
<NAME value="name">zhangsan</NAME>
<INTEREST value="interest">basketball</INTEREST>
<INTEREST value="interest">football</INTEREST>
<BIRTH>
<YEAR>1992</YEAR>
<MONTH>02</MONTH>
<DAY>02</DAY>
</BIRTH>
</STUDENT>
<STUDENT>
<NAME value="name">lisi</NAME>
<INTEREST value="interest">music</INTEREST>
<INTEREST value="interest">reading</INTEREST>
<BIRTH>
<YEAR>1990</YEAR>
<MONTH>01</MONTH>
<DAY>01</DAY>
</BIRTH>
</STUDENT>
</CLASS>
使用dom4j首先需要导入dom4j和 jaxen jar包
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.6</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<CLASS>
<STUDENT>
<NAME value="name">zhangsan</NAME>
<INTEREST value="interest">basketball</INTEREST>
<INTEREST value="interest">football</INTEREST>
<BIRTH>
<YEAR>1992</YEAR>
<MONTH>02</MONTH>
<DAY>02</DAY>
</BIRTH>
</STUDENT>
<STUDENT>
<NAME value="name">lisi</NAME>
<INTEREST value="interest">music</INTEREST>
<INTEREST value="interest">reading</INTEREST>
<BIRTH>
<YEAR>1990</YEAR>
<MONTH>01</MONTH>
<DAY>01</DAY>
</BIRTH>
</STUDENT>
</CLASS>
使用dom4j首先需要导入dom4j和 jaxen jar包
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.6</version>
</dependency>
package com.dom4j.test; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader; import java.io.InputStream; import java.util.Iterator; import java.util.List; public class Dom4jTest { public static void main(String[] args){ SAXReader reader = new SAXReader(); //获取输入流,如果是字符串也可以使用DocumentHelper.parseText()方法解析为Document对象 InputStream is=Dom4jTest.class.getResourceAsStream("/student.xml"); try { //获取document对象 Document document=reader.read(is); //获取文档的根节点 Element rootElement=document.getRootElement(); String name=rootElement.getName(); System.out.println("根节点:"+name); //方法一:迭代根节点的所有子节点 System.out.println("-----获取根节点所有子节点方法一,使用elementIterator()方法-----"); for(Iterator iterator=rootElement.elementIterator();iterator.hasNext();){ Element element=(Element) iterator.next(); System.out.println("根节点子节点:"+element.getName()); } System.out.println("-----获取根节点所有子节点方法二,使用elements()方法-----"); //方法二:获取根节点所有子节点 List<Element> childList = rootElement.elements(); for(Element element:childList){ System.out.println("根节点子节点:"+element.getName()); } System.out.println("-----通过路径获取单个节点,使用selectSingleNode()方法-----"); //通过路径获取单个节点(如果有多个,获取第一个) Node nameNode=document.selectSingleNode("/CLASS/STUDENT/NAME"); System.out.println("NAME节点:"+nameNode.getName()); System.out.println("-----通过路径获取多个节点,使用selectNodes()方法-----"); //通过路径获取多个节点(获取所有的节点) List<Element> interestList = document.selectNodes("/CLASS/STUDENT/INTEREST"); for (Iterator iterator = interestList.iterator(); iterator.hasNext(); ) { Element elem = (Element) iterator.next(); //获取元素的value属性值 String value = elem.attributeValue("value"); //获取元素的值 String text = elem.getText(); System.out.println("INTEREST节点:"+elem.getName()+" value属性:"+value+" 文本值:"+text); } }catch (Exception e){ System.out.println(e.getMessage()); } } } /** * 输出结果 * 根节点:CLASS -----获取根节点所有子节点方法一,使用elementIterator()方法----- 根节点子节点:STUDENT 根节点子节点:STUDENT -----获取根节点所有子节点方法二,使用elements()方法----- 根节点子节点:STUDENT 根节点子节点:STUDENT -----通过路径获取单个节点,使用selectSingleNode()方法----- NAME节点:NAME -----通过路径获取多个节点,使用selectNodes()方法----- INTEREST节点:INTEREST value属性:interest 文本值:basketball INTEREST节点:INTEREST value属性:interest 文本值:football INTEREST节点:INTEREST value属性:interest 文本值:music INTEREST节点:INTEREST value属性:interest 文本值:reading */
相关文章推荐
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- Dom4j解析XML时中文路径解决方案
- 用DOM4J解析XML
- 【转】使用 dom4j 解析 XML
- java中利用dom4j对XML文档的创建、解析、查找、修改、保存等操作。
- 使用 dom4j 解析 XML
- 使用dom4j解析XML例子
- 使用 dom4j 解析 XML
- 采用dom4j解析xml工具
- 解析xml之--DOM4J
- 使用 dom4j 解析 XML
- 用Dom4j解析XML及中文问题(三)
- dom4j解析XML时no protocol:编码问题。
- 使用 dom4j 解析 XML
- 用Dom4j解析XML及中文问题(二)
- 使用 dom4j 解析 XML
- 使用dom4j解析XML例子