XML解析笔记

1.概述

XML文件不仅可以用来交换数据,还可以作为配置文件。XML文件的解析一般有两种方式,即DOM方式和SAX方式。

2.DOM方式

DOM(Document Object Model)方式的思想是:首先将XML文件加载到内存中构建一棵DOM树,然后使用 DOM 接口来操作这个树结构进行解析。

  • 优点:便于操作,支持增删改等多种操作
  • 缺点:浪费时间和空间,当文档很大时可能造成内存溢出的问题

3.SAX方式

SAX方式基于事件驱动,逐行进行解析,当解析器发现元素、文本等的开始或结束时,会发送事件,程序员编写响应这些事件的代码并保存数据。

  • 优点:无须事先加载整个文档,节约资源且不会产生内存溢出问题
  • 缺点:不能对文档进行增删改等操作

4.DOM4J

dom4j是一个优秀的XML解析器,下面简单介绍它的使用。

4.1 jar包导入

使用dom4j解析XML文件首先需要下载并导入dom4j的jar包dom4j-1.6.1.jar

4.2 解析实例

创建以下的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<books>
    <book>
        <name>java编程思想</name>
        <category>编程技术</category>
    </book>
    <book>
        <name>哈姆雷特</name>
        <category>文学名著</category>
    </book>
</books>

使用dom4j进行解析:

package dom4j;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.util.List;

/**
 * dom4j解析xml文件
 * Created by lwyan on 2018/3/25.
 */
public class Demo {
	/**
	 *获得元素内容
	 */
	@Test
	public void test() throws Exception{
		//创建解析器
		SAXReader saxReader = new SAXReader();
		//获得解析的XML文档
		Document document = saxReader.read("src/dom4j/demo.xml");
		//获得根节点元素
		Element root = document.getRootElement();
		//查找根节点下的所有子节点
		List<Element> elements = root.elements();
		for(Element element : elements){
			//获得name节点
			Element name = element.element("name");
			//获得category节点
			Element category = element.element("category");
			System.out.println(name.getText()+":"+category.getText());
		}
	}
}

解析结果:

java编程思想:编程技术
哈姆雷特:文学名著

5.简单分析

  1. XML文档本身是一个Document对象
  2. XML的所有标签都是一个Element对象
  3. 根标签的获得方式为document.getRootElement()
  4. node.elements() 查找的是node节点下的所有子节点
  5. 获得具体某个元素内容的方法为getText()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值