dom4j解析xml_(变强、变秃)JAVA从零学习018/252,XML

今天的内容没什么深度,就过了一遍常用的解析XML的工具。

首先来了解一下XML的概念和体系

1.1XML 概念

XML指可拓展标记语言(EXtensible Markup Language),XML没有预定义标签,需要自定义标签。

1.2XML 的特点

XML 数据以纯文本格式存储

实现不同应用程序之间的数据通信

实现不同平台间的数据通信

实现不同平台间的数据共享

使用 XML 将不同的程序、不同的平台之间联系起来

1.3XML 的作用

数据存储和数据传输

1.4XML 和 HTML 之间的差异

XML 主要作用是数据存储和传输(传输)

HTML 主要作用是用来显示数据(显示)

1.5 一个标准的 XML 文档

173cc0edcf9b02193b264d6dc403f6bf.png

2.XML 基本语法 2.1XML 的基本语法

1) 有且只有一个根元素

2) XML 文档声明必须放在文档的第一行

3) 所有标签必须成对出现

4) XML 的标签严格区分大小写

5) XML 必须正确嵌套

6) XML 中的属性值必须加引号

7) XML 中,一些特殊字符需要使用“实体”

8) XML 中可以应用适当的注释 2.2XML 元素

XML 元素指的是开始标签到结束标签的部分 一个元素中可以包含

1) 其他元素

2) 文本

3) 属性

4) 以上的混合

2.3XML 命名规则

1) 名称可以包含字母、数字及其他字符

2) 名称不能以数字或者标点符号开始

好,了解完XML的基本概念以及语法后,接下来是几种常用的解析工具:

1) DOM 解析 (java 官方提供)

2) SAX 解析(java 官方提供)

3) JDOM 解析(第三方提供)

4) DOM4J 解析(第三方提供)

关于这四种解析方式,最常用的是第四种DOM4J,那么这里我给大家简单的讲解一下DOM4J的用法。

首先,DOM4J第三方提供的,所以我们要导入相关Jar包

a3df5a160b85fcd9202f54f7dbebe766.png

准备一个需要解析的XML文件:

baf4d79ac9aca5bb871272cafdce1e14.png

然后是DOM4J的解析步骤以及代码:

import 

如果看不明白的地方,可以私信问我。

代码中可以发现,如果当我们的XML文件子节点嵌套的越来越多的情况下,使用循环迭代会很麻烦,于是在了解了DOM4J的用法以后,我们就可以继续深入了解XPATH技术。

XPATH实际上也需要借助DOM4J,他是DOM4J的一个升级版。

使用XPATH你需要准备:

① DOM4J的jar包

② Jaxen的jar包

③ Xpath中文文档

打开XPATH的文档,你可以看到一些语法能够快速的获得多层子节点,以下是代码:

import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class XPATH {
	public static void main(String[] args) throws Exception {
		//1.创建SAXReader对象
		SAXReader reader = new SAXReader();
		//2.读取XML文件
		Document doc = reader.read("book.xml");
		//得到第一个author节点
		Node node = doc.selectSingleNode("//author");
		System.out.println(node.getName()+"t"+node.getText());
		System.out.println("---------------");
		//获取所有的author
		List<Node> list = doc.selectNodes("//author");
		for(Node n:list){
			System.out.println("节点名称:"+n.getName()+"t"+n.getText());
		}
		
		//选择有id属性的book元素
		List<Attribute> attList = doc.selectNodes("//book/@id");
		for(Attribute att:attList){
			System.out.println("属性名称:"+att.getName()+"t"+att.getText());
			
		}
	}
}

相比DOM4J之下是不是觉得更方便了,好今天的内容就总结到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值