day08-XML( 三 )

  1. dom4j是一个简单、灵活的开放源代码的库(用于解析/处理xml文件) 。dom4j是由早期开发JDOM的人分离出来后独立开发的 。
  2. 与JDOM不同的是,dom4j使用接口和抽象基类,虽然dom4j的API相对要复杂一些,但他提供了比JDOM更好的灵活性
  3. Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点 。现在很多软件采用的dom4j
  4. 使用dom4j开发,需要下载dom4j对象的jar文件
    dom4j的jar包下载地址(内有使用案例):dom4j
官方api文档:Overview (dom4j 1.6.1 API)
4.3dom4j获得document对象的方式
开发dom4j要导入dom4j的jar包
DOM4j中,获得document对象的方式有三种:
  1. 读取XML文件,获得document对象
    SAXReader reader = new SAXReader();//创建一个解析器Document document = reader.read(new File("src/input.xml"));//XML Document
  2. 解析XML形式的文本,得到document对象
    String text = "<members></members>";//直接对一个字符串的xml文本进行解析Document document = DocumentHelper.parseText(text);
  3. 主动创建document对象
    Document document = DocumentHelper.createDocument();//创建根节点Element root = document.addElement("members");
下面只演示方式一的使用:读取XML文件,获得document对象
dom4j应用实例-读取XML文件,获得document对象
  1. 使用dom4j对students.xml文件进行增删改查
    • 重点讲解查询(遍历和指定查询)
    • xml增删改使用少,作为拓展,给出案例
  2. 引入dom4j的依赖的jar包
    day08-XML

    文章插图
  3. 在src文件下创建Dom4j_类以及students.xml文件
students.xml:
<?xml version="1.0" encoding="UTF-8" ?><students><student id="01"><name>小龙女</name><gender>女</gender><age>16</age><resume>古墓派掌门人</resume></student><student id="02"><name>欧阳锋</name><gender>男</gender><age>18</age><resume>白驼山弟子</resume></student></students>Dom4j_.java:
import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.io.SAXReader;import org.testng.annotations.Test;import java.io.File;public class Dom4j_ {/*** 演示如何加载xml文件*/@Testpublic void loadXML() throws DocumentException {//得到一个解析器SAXReader reader = new SAXReader();//debug-->看看document对象的属性Document document = reader.read(new File("src/students.xml"));System.out.println(document);}}
  1. 如下:在Document document=reader.read(new File("src/students.xml"));处打上断点:
    day08-XML

    文章插图
  2. 点击debug,点击step over,可以看到document对象,它代表整个文档 。
    展开document对象,rootElement代表的就是students根元素
    day08-XML

    文章插图
  3. rootElement下面有一个content属性,content属性存储着所有的elementData
    day08-XML

    文章插图
  4. 点击elementData属性,可以看到该属性有5个对象:
    day08-XML

    文章插图
    和html-dom解析一样,这五个对象中有三个是换行符号\n,其余的两个才是根元素下面的子元素student
  5. 点击展开索引为1的元素对象(即student元素),可以看到该元素对象中又包含了9个对象,除了换行符之外,其余的对象就是student元素的子元素,name节点,gender节点,age节点和resume节点

    经验总结扩展阅读