《XML》
<大纲>
- 介绍与用途
- 语法规则
- 语义约束
- Java解析XML
- XPath路径表达式
一、<介绍与用途>
1. XML是什么
-
全称:Extensible Marked Language,可扩展标记语言;
-
编写XML就是编写标签,和HTML相似;
-
具有良好的人机可读性;
-
例如:
<employee no="3309"> <name>张三</name> <age>31</age> <salary>40000</salary> <department> <dname>会计部</dname> <address>XX大厦-401</address> </department> </employee>
2.XML和HTML的区别
HTML标签是预定义的;XML标签是自定义的、可扩展的;
HTML是用来显示数据的;XML是用来描述数据、存放数据的,所以可以作为持久化的介质!
3.XML的用途
WEB应用配置文件
二、<语法规则>
-
第一行必须是XML声明
<?xml version="1.0" encoding="UTF-8"?>
version 是版本号,encoding是字符集编码
-
有且只有一个根结点
-
便签书写规则与HTML相同
开始标签和闭合标签
-
合理的标签名
父标签和子标签不能一样
不能用无意义的标签
不能用中文
-
适当的注释与缩进
-
合理使用属性
-
特殊字符与CDATA标签
<,>,&,’,"符号使用实体引用,
在CDATA标签内部的是不被解析的文本数据
从<![CDATA[开始,到]]结束。
-
有序的子序列
嵌套前后标签应保持一致
三、<XML语义约束>
概述:XML文档结构正常,但可能不是有效的
XML语义约束就是用于规定XML文档中允许出现哪些元素
1.DTD(Document Type Definition)
-
一种简单易用的语义约束方式
-
扩展名:.dtd
- <!ELEMENT>标签,定义XML文档中允许出现的结点和数量
<!ELEMENT hr (employee)> <!--定义hr标签,hr标签下只能有一个employee子节点--> <!ELEMENT hr (employee+)> <!--定义hr标签,hr标签下最少出现一个employee子节点--> <!ELEMENT hr (employee*)> <!--定义hr标签,hr标签下出现0~n个employee子节点--> <!ELEMENT hr (employee?)> <!--定义hr标签,hr标签下最多出现一个employee子节点-->
-
在XML中使用
<!DOCTYPE hr SYSTEM "hr.dtd"> <!DOCUMENT 根结点 SYSTEM "dtd文件路径">
2.XML Schema
-
XML Schema 比DTD更为复杂,但也提供了更多功能
-
XML Schema 提供了数据类型、格式限定、数据范围等特性
-
XML Schema 是W3C标准
四、<Java解析XML>
-
DOM4j是一个易用的、开源的库,用于解析XML
它应用于Java平台,具有性能优异、功能强大和极其易用的特点
-
DOM4j将XML视为Document对象,一个XML是一个DOM文档树
-
XML标签被Dom4j定义为Element对象
-
利用DOM4j遍历、更新XML
-
下载地址:Dom4j.github
五、<XPath路径表达式>
-
XPath路径表达式是XML文档中查找数据的语言
-
提高提取数据时的开发效率
-
本质:掌握各种表达式的使用技巧
-
最常用的表达式
-
XPath谓语表达式
-
Jaxen开源的XPath库,适应多种对象模型
DOM4j底层依赖Jaxen来实现Xpath查询
下载地址:jaxen.codehaus.org