JDOM
基于XML文档树结构的解析,适用于多次访问的XML文档。
特点:比较消耗资源,但操作节点效率高。
SAX
基于事件的解析,适用于大数据量的XML文档。
特点:占用资源少,内存消耗小,但操作节点效率低。
DOM4J
基于SAX的读写,JDMO的节点操作。
特点:性能优异、功能强大。
一个XML文件分为如下几部分内容:
1.文档声明
2.元素
3.属性
4.注释
5.CDATA区、特殊字符
6.处理指令(processing instruction)
注意:特殊字符用实体转义
(1)编写代码前,需导入DOM4J.jar包
获取jar包,可直接访问dom4j.jar链接 提取码:2226
(2)构建jar包的路径
<?xml version="1.0" encoding="UTF-8"?> <root> <book id="101"> <title>java基础</title> <author>张三</author> <price>45</price> </book> <book id="102"> <title>javascript</title> <author>李四</author> <price>38</price> </book> </root>
package com.m.demo; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import java.io.File; import java.util.List; public class Test { public static void main(String[] args) { try { //创建SAXReader对象 SAXReader reader = new SAXReader(); //注意xml的绝对路径 File file = new File("F:/Javatest/src/com/m/demo/weh.xml"); Document doc = reader.read(file); //获取根节点标签元素 Element root = doc.getRootElement(); List<Element> elements = root.elements(); //遍历 for(Element element : elements) { String id = element.attributeValue("id"); System.out.println(id); List<Element> elements2 = element.elements(); for(Element element2 :elements2) { //输出标签中的内容 System.out.println(element2.getTextTrim()); } } } catch (DocumentException e) { // TODO: handle exception e.printStackTrace(); } } }