说语法之前先说文件
XML文件
- XML是一种存储数据的格式,我们可以将遵照这种数据格式写出来的XML数据保存到一个文件中去,并将文件的后缀名设定为.xml,那么这样的保存了XML数据的文件就叫做xml文件。
- XML文件是保存XML数据的一种方式,XML数据也可以以其他的方式存在(如在内存中构建XML数据),不要将XML语言狭隘的理解成XML文件。
- 浏览器除了内置HTML解析其外还内置了XML解析器,因此我们可以使用浏览器对XML进行校验。
XML语法
这将是你学习过的最简单的语法,之一。你可能掌握英语中的一般现在时需要10分钟,但是掌握XML语法只需要5分钟就可以了。
- XML中的标签都是成对出现的,每个标签都必须有开始标签和结束标签,开始标签和结束标签之间的称为标签体。
- XML 标签对大小写敏感
- XML 必须正确地嵌套
- XML 的属性值须加引号
- 在 XML 中,空格会被保留
- XML允许用户自定义标签
大声的告诉我,掌握这些语法你用了几分钟?
让我们再说回XML文件
XML文档
一份XML文档通常由这几部分组成
- 文档声明
- 有且只有一个,必须在XML文档的第一行,文档声明前面不能有其他内容。
- 在许多时候即使不包含文档声明,XML也可以被正常使用,但是这是不符合标准的,存在风险,因此强烈推荐大家在书写XML时写上文档声明。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
version代表当前xml所遵循的xml标准
encoding代表当前xml文件的编码格式,其默认值为ISO-8859-1
standalone表示当前xml文档是否是一个独立文档,当为yes时表示是一个独立文档,当为no时表示当前文档需要其他文档支持
注:在xml文档中使用此字段,发现浏览器中无效,但浏览器无效不带表其他解析器中也无效。
- 元素(标签)
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。即一个XML标签就是一个XML元素。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
XML 文档必须有且只有一个元素是所有其他元素的父元素。该元素称为根元素。
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
示例代码中 root为根元素,child和subchild均为元素,root元素有且只有一个。
如果一个不包含标签体也不包含其他元素,那么可以将开始标签和结束标签合并,这样的标签称为自闭标签
例如:<a></a>可以简写为自闭标签:<a/>
对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。
千万不要在xml文档中随便敲空格和换行
- XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格,不能包含冒号(:)
名称区分大小写
可使用任何名称,没有保留的字词。 - 属性
一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:
<china capital="beijing"/>
属性值一定要用双引号(")或单引号(')引起来
定义属性名必须遵循与元素相同的命名规范
注释:如果属性值本身包含双引号,那么有必要使用单引号包围它,就像这个例子:
<gangster name='George "Shotgun" Ziegler'>
或者可以使用实体引用:
<gangster name="George "Shotgun" Ziegler">
- 注释
<!--注释-->
注释不能写在文档文档声明前
注释不能嵌套注释
- CDATA区 、特殊字符
暂时不解释 - 处理指令(processing instruction)
暂时不解释
下面是一份XML文档示例
<?xml version="1.0" encoding="ISO-8859-1"?>
<person>
<name>herion_wang</name>
<sex>male</sex>
<age>secret</age>
<slogan>没事不要找我,有事更不要找我!</slogan>
</person>