XML&Dom4j

XML

XML介绍

1.什么是XML

XML是一门语言,该语言使用标记来描述数据格式。
XML全称为Extensible Markup Language,是可扩展的标记语言。
标记也叫标签,比如<name>是一个标签</name>也是一个标签。
标签分为开始标签和结束标签,<name>是开始标签,</name>是结束标签。
XML出身名门,由w3c制定,微软和IBM曾共同大力推荐使用的数据格式。

2.XML与HTML的区别
(一)语法不同
(二)标记不同
(三)作用不同

XML作用

可以当成一个小型的数据库来存储数据。
用于框架中的配置文件,如:structs.xml,hibernate.cfg.xml
用于不同平台之间的数据交换。

XML的组成元素

1.文档声明
格式

<?xml version="1.0" encoding="UTF-8"?>

最简单的文档声明:

<?xml version="1.0" ?>

注意事项
必须为<?xml开头,以?> 结束
必须从文档的0行0列位置开始
只有2个属性

version:指定XML文档版本。必须属性,使用"1.0"即可
encoding:指定XML文档的编码。可选属性,常用值是utf-8

两个属性的顺序不能调换,否则报错。
2.标签(元素)
语法

<标签名>标签内容</标签名>

分类
(1)有主体标签

<name>张三</name>

(2)没有主体标签

<a></a> 可简写为:<a/>

标签名命名规则

严格区分大小写。
不能以数字开头,只能以中文,字母或下划线开头。
标签名不能包含空格,比如<name of> 但是可以这样<name > 不推荐。
标签名中不要使用”:”,因为:是命名空间一个特殊的字符。

注意事项

一个标签中可以嵌套若干子标签,但是必须合理嵌套,不能交叉嵌套。
一个XML文档中只能有一个根标签。
开始标签和结束标签必须成对出现。
标签可包含属性,属性值必须使用引号。

属性
语法

<标签名 属性名=“属性值”>标签内容</标签名>

				比如:`<name id="9527">华安</name>`

注意事项

属性必须是放在开始标签中,而不能放在结束标签中。
属性值必须放在双引号或单引号中,不能单双引号混用。
在同一个标签中属性可以有多个,但不能出现同名的属性。

注释
语法

<!--  xml注释 --> 

注意事项

注释不能嵌套
注释不能出现在文档声明语句之前

转义字符
1.转义的原因

有些字符在XML文档中是有特殊含义的,如果希望原样输出有特殊含义的字符,就需要对该字符进行转义,比如 < > " ’ & 等字符

2.语法

以&开头,以;结束

常见转义字符
					&lt;
						小于符号 <
					&gt;
						大于符号 >
					&quot;
						双引号 "
					&amp;
						与符号 & 
					&apos;
						单引号 '

CDATA区
概念

CDATA的全称是Character Data,即字符数据

作用

保证文本内容不被解析器解析,原封不动的输出。

语法

<![CDATA[
	文本内容
]]> 

处理指令(几乎不用了)

XML约束

概念

用来规定XML文件中应该出现哪些标签,标签有哪些属性,属性有哪些取值。

作用

用来描述XML文档的结构。
让XML文件的书写更加规范。

分类
DTD约束

约束文件是一个文本文件
语法结构相对简单,数据类型单一
只能指定标签(元素)含有文本,不能约束文本的具体类型

应用场景

Struts和Hibernate的配置文件

文件后缀名
dtd

Schema约束

约束文件本身也是XML文件
语法结构相对复杂,数据类型丰富
可以约束指定标签(元素)文本的具体类型,如字符型、整型、日期型、自定义类型

应用场景

Spring配置文件,tomcat的web.xml文件

文件后缀名
xsd

Dom4j

1.dom4j的基本概述

DOM4J是目前使用非常广泛的一种解析XML的技术,与DOM相比,其使用灵活,操作简单。
DOM4J是一个易用的、开源的库,用于XML、XPath和XSLT。DOM4J使用起来非常简单,只要了解最基本的XML-DOM模型,就能使用。DOM4J最大的特色是使用大量的接口,目前对DOM4J的使用越来越广泛。

2.dom4j的基本使用
elements找节点

Element方法名功能说明
String getName()得到当前元素名字
Element element(name)通过标签名得到元素对象
List<Element> elements()得到所有子元素
List<Element> elements(name)得到所有指定名字的子元素

找属性

方法名功能说明
Attribute attribute(name)通过属性名得到属性对象
String attributeValue(name)通过属性名得到属性值
List<Attribute> attributes()得到当前元素的所有的属性集合

3.xpath表达式

XPath表达式分类语法
绝对路径/xxx/xxx/xxx
相对路径./xx/xx
全文路径//xxx
属性查找//@属性名
dom4j中与XPath相关的方法
Document对象的方法功能说明
Node selectSingleNode(String xpath)通过xpath得到一个节点
List selectNodes(String xpath)通过xpath得到一组节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值