XML 是什么:它和 HTML、JavaScript 有什么区别,用来做什么

XML 是一种用自定义标签描述结构化数据的标记语言。它不负责显示页面,也不负责执行逻辑,而是把数据组织成有层级、可被程序读取的文本格式。如果你需要让不同系统之间交换数据、保存配置,或者处理 RSS、SVG 这类基于 XML 的格式,就需要理解它。它和 HTML、JavaScript 不是替代关系:HTML 管展示,JavaScript 管行为,XML 管数据。

XML 的核心特征

XML 的全称是 Extensible Markup Language,即可扩展标记语言。它的“可扩展”体现在标签名由你自己定义,而不是像 HTML 那样只能使用固定标签。

一个最小的 XML 文档长这样:

<?xml version="1.0" encoding="UTF-8"?>
<book>
  <title>深入理解计算机系统</title>
  <author>Randal E. Bryant</author>
  <price currency="CNY">139</price>
</book>

这段代码里有几个基本结构:

  • 声明:<?xml version="1.0" encoding="UTF-8"?> 说明版本和编码,通常放在第一行。
  • 根节点:<book> 是整份文档的唯一根元素,所有其他元素都包在它里面。
  • 元素:<title>、<author>、<price> 是自定义标签,成对出现,中间是内容。
  • 属性:currency="CNY" 是挂在元素上的附加信息。

XML 对格式要求很严格:标签必须闭合、大小写敏感、属性值必须加引号、只能有一个根节点。少一个闭合标签,解析就会失败。

XML 和 HTML 的区别

两者都使用尖括号标签,但目的完全不同。

维度 XML HTML
用途 描述和传输数据 展示网页内容
标签 自定义,无预定义含义 固定,如 <p>、<div>
语法严格度 非常严格,错误即解析失败 相对宽松,浏览器会容错
关注点 数据是什么 数据长什么样

举例来说,<title> 在 HTML 里表示页面标题,浏览器知道怎么渲染;而在上面的 XML 里,<title> 只是我自定义的一个数据字段,浏览器不会自动显示它。XML 本身不包含任何样式信息,要显示就得配合 CSS 或 XSLT。

XML 和 JavaScript 的关系

JavaScript 不“属于”XML,但可以读取和处理 XML 数据。常见方式有两种:

  1. 通过 DOM 解析:浏览器内置 DOMParser,可以把 XML 字符串转成可遍历的 DOM 对象。
const xmlString = `<book><title>示例</title></book>`;
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "text/xml");
console.log(xmlDoc.querySelector("title").textContent); // 示例
  1. 通过 fetch 获取远程 XML:拿到响应文本后,同样用 DOMParser 解析,再提取字段渲染到页面。

预期结果是:JavaScript 负责“取数据”和“用数据”,XML 只负责“存数据”。这也是前后端分离中常见的数据交换模式之一,只不过现在更多用 JSON 替代 XML。

XML 常见的使用场景

  • 配置文件:如 Maven 的 pom.xml、Android 的布局文件。
  • 数据交换:早期 Web Service(SOAP)用 XML 传输请求和响应。
  • 文档格式:Office 的 .docx、.xlsx 本质是 zip 包内的 XML 文件集合。
  • 图形与订阅:SVG 矢量图、RSS/Atom 订阅源都基于 XML。
  • 行业标准:医疗、金融等领域存在大量基于 XML 的数据规范。

为什么现在更多用 JSON

XML 表达能力强,但代价是冗长。同样的数据,JSON 通常更短、更易读,且与 JavaScript 天然兼容。

{
  "book": {
    "title": "深入理解计算机系统",
    "author": "Randal E. Bryant",
    "price": { "currency": "CNY", "value": 139 }
  }
}

对比可见,JSON 省去了大量闭合标签,解析也更直接。因此在现代 Web API 中,JSON 已成为主流。但 XML 并未消失:在需要严格 schema 校验、命名空间、复杂文档结构的场景,它仍有不可替代的位置。

什么时候该用 XML

  • 你需要一套可校验的数据结构规范(如 XSD),且对格式约束要求高。
  • 你要处理已有系统或行业标准输出的 XML 数据。
  • 你要编写 Maven、Android 等特定工具的配置文件。
  • 你要处理 SVG、RSS 这类本身就是 XML 的格式。

如果只是前后端传几个字段的普通接口数据,JSON 通常更省事。选择哪种格式,取决于数据复杂度、校验需求和对接方的既有约定,而不是哪个“更高级”。

apnsoft.com
empathyalgorithm.com
Empathy Algorithm is the best Home Health Agency App providing elder care and disability care services to your loved ones with just one click. Get ...
runoob.com
菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。..
w3school.com.cn
提供结构清晰、通俗易懂的 Web 开发教程,内含海量实战示例,涵盖 HTML、CSS、JavaScript、SQL、Python、PHP、Bootstrap、Java、XML 等多种技术。