XML全称为可扩展标记语言,它和HTML同属标记语言,但XML的核心作用是存储和传输数据,而非展示数据。XML的语法有严格的规范要求,只有符合这些规则的文档才能被解析器正确识别和处理。

XML核心语法规则
1. 文档声明规则
每个合法的XML文档开头都需要包含文档声明,用来说明XML的版本和编码信息。文档声明必须放在文档的第一行,前面不能有任何内容,包括空格和换行。
<?xml version="1.0" encoding="UTF-8"?>
上面的声明表示当前XML使用1.0版本,字符编码为UTF-8,这是最常用的XML声明形式。
2. 标签规则
XML的标签需要成对出现,有开始标签就必须有对应的结束标签,标签名区分大小写,开始标签和结束标签的大小写必须完全一致。如果标签内部没有内容,也可以使用自闭合标签的形式。
<!-- 成对标签示例 -->
<user>
<name>张三</name>
</user>
<!-- 自闭合标签示例 -->
<img src="test.jpg"/>
标签名不能以数字或标点符号开头,不能包含空格,建议使用有意义的英文单词或下划线组合命名。
3. 属性规则
XML标签可以包含属性,属性值必须用英文双引号或单引号包裹,同一个标签内的属性名不能重复。属性通常用来描述标签的额外特征,但如果有多个属性,建议优先使用子标签来存储数据,可读性会更好。
<user id="1001" status="active">
<name>张三</name>
</user>
4. 注释规则
XML的注释格式和HTML一致,注释内容不会被解析器处理。注释不能嵌套使用,也不能放在文档声明的前面。
<!-- 这是XML注释,用来说明文档内容 --> <!-- 注释不能嵌套,下面的写法是错误的 --> <!-- <user> <!-- 嵌套注释 --> </user> -->
5. 特殊字符处理规则
如果XML内容中需要包含<、>、&等特殊字符,不能直接写入,需要使用对应的实体引用,否则会导致解析错误。
| 特殊字符 | 实体引用 | 说明 |
|---|---|---|
| < | < | 小于号 |
| > | > | 大于号 |
| & | & | 和号 |
| ' | ' | 单引号 |
| " | " | 双引号 |
XML基本结构组成
一个完整的XML文档通常包含以下几个部分,所有内容都需要放在一个根标签内部,XML文档只能有一个根标签,这是必须遵守的规则。
1. 文档声明
如前面提到的,文档声明是XML文档的开头部分,用来指定XML版本和编码。
2. 根元素
根元素是XML文档的最外层标签,所有其他元素都必须嵌套在根元素内部,不能出现和根元素同级的其他标签。
3. 子元素和文本内容
根元素内部可以包含多个子元素,子元素还可以继续嵌套子元素,文本内容需要放在开始标签和结束标签之间。
4. 完整的XML基本结构示例
下面是一个存储用户信息的完整XML示例,符合所有XML语法规则:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 用户列表根元素 -->
<user_list>
<user id="1001">
<name>张三</name>
<age>25</age>
<email>zhangsan@ipipp.com</email>
<hobby>篮球&足球</hobby>
</user>
<user id="1002">
<name>李四</name>
<age>28</age>
<email>lisi@ipipp.com</email>
<hobby>阅读</hobby>
</user>
</user_list>
这个示例中,user_list是根元素,内部包含两个user子元素,每个user元素有属性id,还有name、age等子元素,hobby元素中的&使用了实体引用,避免了语法错误。
常见XML语法错误排查
编写XML时最常出现的错误有以下几种,编写完成后可以对照排查:
- 文档声明不在第一行,或者前面有多余的空格、换行
- 标签没有正确闭合,开始标签和结束标签大小写不一致
- 属性值没有用引号包裹,或者同一个标签内有重复的属性名
- XML文档有多个根元素
- 特殊字符没有使用实体引用,直接写入了<、>、&等字符
- 注释嵌套使用
只要严格遵循上述语法规则和结构要求,就可以编写出合法且可读性高的XML文档,满足数据交换和存储的需求。
XMLXML_syntaxXML_structureXML_tutorial修改时间:2026-06-16 10:54:32