XML全称为可扩展标记语言,是一种用来描述数据结构的文本格式。它通过自定义标签来标识内容含义,常被用于系统之间的数据交换以及各类配置文件中。与HTML专注于页面展示不同,XML更关心数据本身如何被准确地组织和读取。

XML的基本概念
在入门阶段,需要先弄清楚几个核心术语。元素是指由开始标签、内容和结束标签共同组成的部分。标签是用来标记元素的名称,分为开始标签如<name>和结束标签如</name>。属性则写在开始标签内部,用来提供元素的额外信息。
常见基本组成
- 根元素:整个文档必须只有一个最外层的元素
- 子元素:嵌套在其他元素内部的元素
- 属性:依附于标签的键值对
- 注释:使用<!-- 注释内容 -->书写,不会被解析
XML语法规则
新手写XML时最容易出错的地方在于格式不规范。下面列出必须遵守的基础语法。
主要语法要求
| 规则 | 说明 |
|---|---|
| 标签成对 | 每个<tag>必须有对应的</tag> |
| 根唯一 | 文档只能有一个根元素包含全部内容 |
| 区分大小写 | <Book>和<book>是两个不同标签 |
| 属性加引号 | 如<user id="1">不能省略引号 |
简单示例
下面给出一个符合语法的XML片段,展示如何描述一本书的信息。
<?xml version="1.0" encoding="UTF-8"?>
<library>
<book id="101">
<title>XML入门</title>
<author>张三</author>
<price>39.00</price>
</book>
</library>
代码说明
上面代码中,<library>是根元素,<book>带有属性id,内部包含三个子元素。注意所有标签都正确闭合,属性值用了双引号。
如何校验XML
可以使用浏览器直接打开XML文件,若格式错误会提示解析失败。也可以在代码中使用解析库,例如Python的xml模块。
import xml.etree.ElementTree as ET
# 解析上面结构的XML字符串
data = '''<library><book id="101"><title>XML入门</title></book></library>'''
root = ET.fromstring(data)
print(root.tag)
print(root.find('book').get('id'))
运行后会输出library和101,说明成功读取了根标签名称和书的属性。只要理清元素、标签与属性之间的关系,再多加练习,就能轻松上手XML的基本写法。