使用DOM4J解析XML文件

简介

XML可扩展标记语言,是一种数据交换格式,与操作系统和编程语言的开发平台无关,实现不同系统之间的数据交换。XML在不同的编程语言中都是一样的,只是实现的语法不同。XML在格式上和HTML有点相似,HTML中的标签是语法规定好的,而XML中的标签可以由开发者自己定义,只要不违反语法规则即可。

XML有四种解析方式:DOM解析,SAX解析,JDOM解析,DOM4J解析。今天我们简单的来了解一下DOM4J解析方式。

DOM4J

1.Dom4J是一个简单,灵活的开源代码的库。Dom4J是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,Dom4J使用接口和抽象类,虽然Dom4J的API相对要复杂一些,但它提供了比JDOM更好的灵活性。

2.Dom4J是一个非常优秀的Java XML API,具有性能优异,功能强大和极易使用的特点。现在和多软件采用的Dom4J,例如Hibernate,包括sun公司自己的JAXM也用了Dom4J.

3.使用Dom4J开发,需要下载DOM4J相应的jar包。

XML文件

新建一个Phone.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<phone>
    <name nm="华为">
        <type>HW621</type>
        <type>U8650</type>
        <type>HW123</type>
        <type>HW321</type>
    </name>
    <name nm="苹果">
        <type>iPhone</type>
    </name>
    <name nm="三星">
        <type>Note4</type>
    </name>
</phone>

version表示版本号,encoding表示编码集。后面的标签自己写的。

通过Dom4J解析XML文件

首先在项目中导入dom4j.jar包

package XML;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Main {

    public static void main(String[] args) throws DocumentException {
        SAXReader rd=new SAXReader();//加载一个XML文档到内存 SAXReader

        Document document=rd.read("Phone.xml");//读Phone.xml
        Element rt=document.getRootElement();//获取根节点  phone节点
        List<Element> names = rt.elements();//根据根节点得到list集合 也就是name节点

        for (Element element :names ) {//遍历name节点
            System.out.println("品牌:"+element.attribute("nm").getValue());//得到neme节点里面的属性
            List<Element> elements = element.elements();//得到name节点的子节点 也就是type节点
            for (Element eee : elements) { //遍历type节点
                System.out.println("\t\t\t型号:"+eee.getText());//得到的是type之间的元素
            }
        }
    }
}

运行截图:


在遍历的过程中,首先获得根节点,然后由根节点获得下面的子节点,就类似与树的遍历,最终得到每个节点的信息。



猜你喜欢

转载自blog.csdn.net/chianz632/article/details/80107274