使用DOM4J解析XML

DOM4j解析XML并非Java官方提供的工具,使用DOM4j解析XML相对简单,你需要引入依赖


     dom4j
     dom4j
     1.1

 写个简单的测试类测试下,使用到的xml还是之前的demo.xml

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class Dom4jParseXml {

    public static void main(String[] args) {
        SAXReader saxReader = new SAXReader();
        try {
            //获取输入流
            //你也可以将demo.xml放在resources目录下,然后通过下面方式获取
            //InputStream resourceAsStream = Dom4jParseXml .class.getClassLoader().getResourceAsStream("demo.xml");
            Document document = saxReader.read(new File("D:/demo.xml"));
            //获取xml根节点
            Element rootElement = document.getRootElement();
            List elements = rootElement.elements();

            ListIterator elementListIterator = elements.listIterator();
            while (elementListIterator.hasNext()) {
                Element next = elementListIterator.next();
                List attributes = next.attributes();
                for (Attribute attribute : attributes) {
                    System.out.println(attribute.getName() + ":" + attribute.getValue());
                }
                Iterator iterator = next.elementIterator();
                while (iterator.hasNext()) {
                    Element element1 = (Element) iterator.next();
                    System.out.println(element1.getName() + ":" + element1.getStringValue());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

接着你需要做的就是把解析出来的数据封装在对象里了。输出结果如下

节点名=id,节点值=person1
节点名=name,节点值=simons
节点名=sex,节点值=男
节点名=age,节点值=24
节点名=address,节点值=魔都
节点名=id,节点值=person2
节点名=name,节点值=rose
节点名=sex,节点值=女
节点名=age,节点值=22
节点名=address,节点值=帝都

引申阅读:

使用SAX解析XML:https://blog.csdn.net/fanrenxiang/article/details/81098041

使用JDOM解析XML:https://blog.csdn.net/fanrenxiang/article/details/81100740

使用DOM解析XML:https://blog.csdn.net/fanrenxiang/article/details/81078854

你可能感兴趣的:(Java,Java编程之路)