概述
i、XML的基本概念
- XML(Extensible Markup Language,可扩展标记语言)。
- 允许开发者自由定义标签,可以将标签和内容有效分离。
- XML不再侧重于数据如何展示,而是更多地关注数据如何存储和传输。
ii、XML的应用场景
- XML把数据从HTML分离出来。
- 简化数据共享。
- 简化数据的传输。
- 简化平台的变更。
iii、XML的优势
- 简单易用的标记语言。
- 严格的格式。
- 数据逻辑和显示逻辑分离。
XML文档规则
i、XML整体结构
- 有且只有一个根元素。
- 元素必须合理结束。
- 元素之间必须合理嵌套。
- 元素的属性必须有值。
ii、XML声明
<?xml version="1.0"encoding="GB2312"standalone="yes"?>
Ps:standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。
iii、合法标签名
- XML元素由开始标签和结束标签组成,结束标签比开始标签多一条斜线。
- XML文档区分大小写。因此,开始标签和结束标签名必须绝对相同,大小写也要完全一致。
iv、嵌套子元素
- XML允许无限深度嵌套子元素,只要保证元素之间合理嵌套即可。
- XML元素可以嵌套多个重名的子元素,这多个元素之间是有序的。
v、空元素
- XML允许使用空元素语法,空元素不可接受子元素,也不可接受字符串内容。
- 空元素和内容为空的元素并不相同。
- 空元素只是不能包含子元素,也不能包含字符串内容,但完全可以接受属性,而且可以接受任意多个属性。
vi、字符数据
开始标签和结束标签之间的文本可以是任何Unicode字符,并且其间的任何字符都将忠实地传递给XML处理程序。如果文本字符串中包含一些特殊的字符,例如尖括号(<)或and符号(&),由于这些符号在XML文档中都有特殊的含义,因此直接在XML元素中使用该字符串将引起文档混乱。
1. 使用实体引用
为了正确处理XML文档中的特殊字符,XML允许使用实体来表示这些特殊字符。
XML预置了5个实体引用,如表:
注意:只有“<”和“&”会引起混乱,所以这两个一定要用转义字符,但是为了可读性,其他也通常一律用转义字符。
2. 使用CDATA标记
在特殊标记CDATA下,所有的特殊字符,甚至是有效的元素都将被当成简单字符处理实体引用也会失去作用,变成纯文本
语法:<![CDATA[文本内容]]>。
v、注释
语法:<!--注释字符串-->。
XML注释需要注意的地方:
1.不要把注释放在标签之内,否则,该文档将不是一个格式良好的XML文档。
2.不要把注释放在XML声明之前,XML声明应该永远处于XML文档的第一行。
3.不要在注释中使用双中画线(--)。
vi、W3C对于属性的使用建议:属性通常提供属于数据组成部分的信息,如果属性值里包含的信息属于该实体本身,则应该使用子元素来指定该信息,因此,W3C推荐尽量使用子元素,而避免使用属性。
vii、换行处理
目前主流的操作系统,主要有3种换行符:
1.Windows平台:回车符(CR)和换行符(LF)的组合存储换行。
2.UNIX和Linux平台:以换行符(LF)存储换行。
3.Macintosh平台:以回车符(CR)存储换行XML统一换行符(LF)存储换行。
viii、XML文档分类
1.格式不良好的XML文档
- 完全没有遵守XML文档基本规则的XML文档。
2.格式良好但无效的XML文档
- 遵守了XML文档基本规则,但没有使用DTD或Schema定义语义约束的XML文档。
- 使用DTD或Schema定义了语义约束,但没有遵守DTD或Schema所定义的语义约束的XML文档。
3.有效的XML文档
- 遵守了XML文档基本规则,并使用DTD或Schema定义了语义约束,而且也完全遵守了DTD或Schema所定义的语义 约束的XML文档。
3.XML命名空间
i、为什么使用命名空间?
- 在同一份XML文档中可能出现多个同名的元素和属性一—这多个同名的元素和属性具有不同的含义和作用,但如果我们不从语法上提供区别,则XML处理器无法区分它们。
ii、使用命名空间
语法:xmlns[:prefix]=“命名空间字符串”。(xmlns是XML Namespaces的缩写)
命名空间的特征:
- 名字很长(命名空间往往是一个绝对的URL地址)。
- 名字里往往包含英文冒号、斜线等特殊字符。
iii、属性使用命名空间
- 通常情况下,由于属性是属于某个元素的,因此很自然地认为属性总是属于它所在元素所处的命名空间,一般无须专门为属性指定命名空间。
4.XPath 语言
i、XPath 概念
- XPath语言是一门专门用于在XML文档中查找信息的语言,其他XML程序可利用XPath在XML文档中对元素和属性进行导航。
提问:为什么要查找标签和属性呢?
回答:因为XML文档是用来存储数据的,需要将数据提取出来使用,所以通过查找标签和属性进一步获取数据。
ii、XPath 节点
iii、XPath基本概念
iv、节点关系
>父节点
>子节点
>兄弟节点
>祖先节点
>后代节点
v、相对路径和绝对路径5.XPath基础语法
6.XPath运算符
7.节点相关的常见函数