工具
ZH

XML 是什么?

XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和交换结构化数据的文本格式。本文介绍 XML 是什么意思、语法规则如何运作、.xml 文件是什么,以及日常生活中哪些地方会用到 XML——从 sitemap 和 SVG 图片,到 Office 文档和电子发票。

XML 是什么意思

XML 是 Extensible Markup Language(可扩展标记语言)的缩写。它于 1998 年成为 W3C 推荐标准,用你自己命名的标签来描述数据——这正是“可扩展”的含义。与 HTML 不同,XML 没有预定义的标签:商品目录可以使用 <product> 和 <price>,发票则可以使用 <item> 和 <total>。

一个最简单的 XML 文档是这样的:<book id="1"><title>XML Basics</title><year>2026</year></book>。XML 是纯文本,人可以直接阅读,所有编程语言也都能处理它。它只负责存储和组织数据,本身不执行任何操作;数据的含义和显示方式由程序决定。

XML 语法规则

每个 XML 文档都必须遵守几条严格的规则。符合这些规则的文档称为格式良好(well-formed)的文档:

注释的写法是 <!-- … -->。XML 校验工具能在一秒内检查以上所有规则,并指出错误所在的行。

元素和属性

元素由开始标签、内容和结束标签组成:<price>19.90</price>。元素可以包含文本、其他元素,或两者兼有。属性是写在开始标签内的名值对:<price currency="EUR">。

元素属性
示例<color>red</color>color="red"
可以重复是否,每个元素中只能出现一次
可以包含子元素是否,只能是文本
顺序有意义是否

常见的约定是:数据本身以及可能重复或带有结构的内容用元素表示,ID、单位、类型等元数据则用属性表示。

格式良好的 XML 与有效的 XML

格式良好(well-formed)的 XML 遵守语法规则,不符合规则的文档会被解析器拒绝。有效(valid)的 XML 不仅格式良好,还符合某个 Schema;Schema 规定了允许出现哪些元素和属性、它们的顺序以及数据类型。

XML 命名空间

由于任何人都可以自定义标签名,两套词汇表可能会用到同一个名称——比如书的 <title>(书名)和人的 <title>(头衔)。命名空间通过把名称绑定到一个 URI 来区分它们。xmlns:cfdi="http://www.sat.gob.mx/cfd/4" 声明了前缀 cfdi,因此 <cfdi:Comprobante> 属于墨西哥 CFDI 4.0 词汇表。默认命名空间(不带前缀的 xmlns="…")适用于其内部所有不带前缀的元素。URI 只是一个标识符,不会从中下载任何内容。

XML、JSON 和 HTML 的区别

XMLJSONHTML
用途存储和交换结构化数据与文档交换数据,尤其用于 Web API显示网页
标签名或键名自行定义自行定义由 HTML 标准规定
数据类型文本(除非 Schema 定义了类型)字符串、数字、布尔值、null、数组、对象文本
属性有无有
注释支持不支持支持
SchemaDTD、XSDJSON Schema–
语法错误被解析器拒绝被解析器拒绝由浏览器自动修复

JSON 更简短,并且可以直接映射为 JavaScript 对象,因此大多数 Web API 都改用了 JSON。而在文本与标记混排、需要命名空间或必须严格按 Schema 校验的场景中,XML 依然优势明显——这正是税务机关、出版机构和办公文档格式至今仍依赖 XML 的原因。

.xml 文件是什么?XML 文件怎么打开?

.xml 文件是包含 XML 文档的纯文本文件,通常采用 UTF-8 编码。既然是文本,任何文本编辑器都能打开它——Windows 上的记事本、Mac 上的“文本编辑”,或者 VS Code 等代码编辑器。把 XML 文件拖进 Chrome 或 Firefox 浏览器窗口,就会以树形结构显示;Excel 也可以把 XML 数据导入电子表格。

很多文件的扩展名虽然不是 .xml,用的却也是 XML:.svg 图片、.rss 订阅源、.xsd Schema、.xsl 样式表、.NET 中的 .config 文件,以及 macOS 上可以用 XML 格式保存的 .plist 文件。Word、Excel 和 PowerPoint 文件(.docx、.xlsx、.pptx)则是装满 XML 文件的 ZIP 压缩包。

XML 的常见用途

常见问题

XML 是什么的缩写?

XML 是 Extensible Markup Language(可扩展标记语言)的缩写。“可扩展”指你可以自己定义标签,“标记”指用包裹数据的标签来表示结构。

XML 是编程语言吗?

不是。XML 是一种数据格式:它描述并组织信息,但不能进行任何计算。XPath、XSLT 等相关技术用于查询和转换 XML。

现在还有人用 XML 吗?

当然有。在许多 Web API 中,JSON 已经取代了 XML,但 XML 仍是 sitemap、RSS 订阅源、SVG、办公文档、Android 布局、SOAP 服务以及许多国家电子发票的标准格式。

最后更新: