目录
5.标记的层级称呼(子标记,父标记,兄弟标记,后代标记,祖先标记)
简介
可扩展标记语言(extensible Markup Language),可将其理解为软件与软件之间交流的一门语言。
特性:
- xml具有平台无关性,是一门独立的标记语言。其中,平台无关性包括系统平台无关性与语言平台无关性,系统平台无关性是指效果与系统无关,如Windows和Mac;语言平台无关性是指用哪种语言来解析效果是一样的,如Java,JavaScript等。xml是一门独立的语言,可以不依赖于任何语言而存在,自己可以去描述一些事物,单独存在时也是有意义的。
- xml具有自我描述性。
为什么学习XML?
- 网络数据传输。XML可以以更好的语法组织数据通过客户端发送到服务器,xml的语法格式很有层次感。很好的解决了Java等语言的不能跨语言的问题,比如,Java以传一个对象的方式传递数据时,不存在跨语言的可能。
- 数据存储。数据存储目前使用较少。
- 配置文件。
XML文件
- .xml文件是保存XML数据的一种方式。
- XML数据也可以以其他的方式存在(如在内存中构建XML数据)。
- 不要将XML语言狭隘的理解成XML文件。
XML语法格式(重要)
1.xml文档声明
<?xml version="1.0" encoding="UTF-8"?>
2.标记(元素/标签/节点)
XML文档,由一个个标记组成。
语法:
开始标记:<标记名称>
结束标记:</标记名称>
标记名称:自定义名称,必须遵循以下命名规则:
1.名称可以含字母、数字以及其他的字符。
2.名称不能以数字或者标点符号开始。(特别注意)
3.名称不能以“xml”(或者 XML,xml)开始。
4.名称中不能包含空格,不能包含冒号( :)。
5.名称区分大小写。
标记内容:开始标记与结束标记之间是标记的内容。
例,通过标记描述一个人名:
<name>张德帅</name>
3.一个xml文档中,必须有且仅有一个根标记。
正例:
<names>
<name>张三</name>
<name>李四</name>
</names>
反例:
<name>张三</name>
<name>李四</name>
4.标记可以嵌套,但是不允许交叉。
正例:
<book>
<author>刘安</author>
<publisher>机械工业出版社</publisher>
</book>
反例:
<book>
<author>刘安<publisher></author>
机械工业出版社</publisher>
</book>
5.标记的层级称呼(子标记,父标记,兄弟标记,后代标记,祖先标记)
例如:
<books>
<book>
<name>Java EE实战</name>
<author>李华</author>
</book>
<book>
<name>Java 实战</name>
<author>张三</author>
</book>
</books>
name是book的子标记,也是book的后代标记;
name是books的后代标记;
name是author的兄弟标记;
book是name的父标记;
books是name的祖先标记。
6.标记名称,允许重复。
7.标记除了开始和结束标记外,还有属性。
标记中的属性,在标记开始时描述,由属性名和属性值组成。
格式:
在开始标记中,描述属性;
可以包含0~n个属性,每一个属性是一个键值对;
同一个标签内,属性名不允许重复,键与值之间使用等号连接,多个属性之间使用空格分隔;
属性值必须用引号引住。[其中引号可以使用单引号或者双引号]
案例:
<books>
<book id="1001" groupid="1">
<name>Java EE实战</name>
<author>李华</author>
</book>
<book id="1002" groupid="1">
<name>Java 实战</name>
<author>张新安</author>
</book>
</books>
<!-- 属性也可以写作标记,属性和标记的目的都是用于存储数据-->
<books>
<book>
<id>1001</id>
<groupid>1</groupid>
<name>Java EE实战</name>
<author>李华</author>
</book>
<book>
<id>1001</id>
<groupid>1</groupid>
<name>Java 实战</name>
<author>张新安</author>
</book>
</books>
8.注释
注释不能写在文档的文档声明前;
注释不能嵌套注释:
格式:
注释开始:<!--
注释结束:-->
<!-- xml注释示例 -->
xml编写完整示例:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="1001" groupid="1">
<name>Java EE实战</name>
<author>李华</author>
</book>
<book id="1002" groupid="1">
<name>Java 实战</name>
<author>张新安</author>
</book>
</books>
9.xml语法进阶CDATA(了解)
CDATA是不应该由XML解析器解析的文本数据。
像 "<" 和 "&" 字符在XML元素中都是非法的;
"<" 会产生错误,因为解析器会把该字符解析为新元素的开始;
"&" 会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量的 "<" 和 "&" 字符,为了避免错误,可以将脚本代码定义为CDATA。
CDATA部分中的所有内容都会被解析器忽略。
CDATA部分由 "<![CDATA[" 开始,由 "]]>" 结束。
示例:
<name><![CDATA[呵<a></a>呵]]></name>