Dom4j解析XML

来源:互联网 发布:淘宝二姐家是正品吗 编辑:程序博客网 时间:2024/06/01 18:14

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包

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();        //获取输入流        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 */


0 0
原创粉丝点击