dom4J解析XML入门案例
² 为什么有dom4j
dom 缺点 : 比较耗费内存 sax缺点: 只能对xml进行读取,但是不能去 修改,添加,删除. dom4j :既可以提高效率,同时也可以进行crud 特别说明: 因为dom4j不是sun公司的产品,所以我们开发dom4j需要引入jar包. |
² 使用dom4J需要导入的包(记住导包,不然会出错)
使用简单的dom4j导入的包 | 使用dom4j高级功能(比如XPath)需要导入 |
² xpath的必要性
为了我们根据方便的访问的某个节点,我们可以使用xpath技术,当使用xpath后,就可以非常方便的读取到指定节点,xpath往往是结合dom4j一并使用. 说明:如果要使用xpath 则需要引入一个新的包: jaxen-1.1-beta-6.jar |
1) 原理图:
² 一个dom4j的简单案例
1) XML文档
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <students> <student sid="002"> <name>小李</name> <course> <java>9</java> <oracle>70</oracle> <vb>8</vb> </course> </student> <student sid="003"> <name>小韩</name> <course> <java>90</java> <oracle>70</oracle> <vb>85</vb> </course> </student> <student sid="004"> <name>小明名</name> <course> <java>34</java> <oracle>50</oracle> <vb>58</vb> </course> </student> <student sid="005"> <name>小红</name> <course> <java>29</java> <oracle>39</oracle> <vb>88</vb> </course> </student> </students> |
2) Java的dom4j代码(记住两个包都要导入)
package com.zx.dom4j;
import java.util.List;
import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader;
public class Test { public static void main(String[] args) throws Exception { //创建dom4j的解析器 SAXReader saxReader = new SAXReader(); //解析文档 Document document = saxReader.read("src/student.xml"); //dom4j和Xpath一起使用.通常用这两个函数 //取出students元素下面的所有student //List list = document.selectNodes("/students/student"); //返回的是一个list //获取第一个学生的姓名 List list = document.selectNodes("/students/student/name"); System.out.println(((Element)list.get(0)).getText()); //取出XML文档中所以的student元素(//表示所有) //List list = document.selectNodes("//student");
//取出有id属性的那个属性节点 //List list = document.selectNodes("/@id"); //还有很多,具体参照Xpath帮助文档,(实例1到实例7掌握) //Element element = (Element) document.selectSingleNode(""); //返回的值只有一个 System.out.println(list.size()); } }
|
3) 注意(重要)
1.使用dom4j都要导入包,基本的dom4j要导入dom4j的包,使用Xpath要导入第二个包
2.SAXReader这个类要导入包才可以用
3.dom4j使用的步骤为:
a. 建立SAXReader解析器
b. 用SAXReader 对象的read()方法解析XML文档
c. 然后使用dom4j和Xpath一起的话,会很简单,也很有效率的