其他

XML 完整知识点文档

Extensible Markup Language,可扩展标记语言。

作者:洋柿子·2026-09-01·共 2 篇 · 当前 2

#XML

XML 完整知识点文档(结构化笔记版)

一、XML 基础概念

1. 全称

Extensible Markup Language,可扩展标记语言。

2. 核心定位

  • 用来存储数据、传输数据、做配置文件
  • 自定义标签,不预定义标签,可自己造标签
  • 纯文本格式,跨平台、跨语言通用
  • 重点:描述数据结构,不负责页面展示

3. 核心特点

  1. 可扩展性:标签自己定义,不受限制
  2. 跨平台:Windows / Linux / Mac / 编程语言都能解析
  3. 结构化:层级嵌套,格式严谨
  4. 纯文本:可用记事本、Vim、Nvim 直接编辑

二、XML 与 HTML 本质区别

表格

对比项 HTML XML
用途 页面展示数据 存储 / 传输数据、配置
标签 预定义好,不能自定义 完全自定义标签
语法 语法松散,容错高 语法极其严格,错一点就报错
大小写 不敏感 严格大小写敏感
作用 给人看的界面 给程序、系统读取的结构化数据

三、XML 强制语法规则(必记)

  1. 必须有且只有一个根标签
  2. 标签大小写敏感 <User> 和 <user> 是两个标签
  3. 所有标签必须闭合:开始标签 + 结束标签
  4. 标签必须正确嵌套,不能交叉嵌套
  5. 属性值必须用单引号 / 双引号包裹
  6. 特殊符号必须转义,不能直接写
  7. 换行、空格会被保留,格式敏感

四、XML 文档结构组成

  1. XML 声明(文档第一行)

xml

<?xml version="1.0" encoding="UTF-8"?>
  • version:版本,固定 1.0
  • encoding:编码,一般 UTF-8
  1. 根元素

    整个文档最外层唯一的大标签

  2. 子元素 / 标签

    层级嵌套的自定义标签

  3. 属性

    写在开始标签里,属性名="值"

  4. 文本内容

    标签中间的文字数据

  5. 注释

xml

<!-- 这是XML注释 -->

五、XML 转义特殊字符

XML 里 < > & " ' 不能直接写,必须转义:

表格

原符号 转义字符
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;

六、CDATA 区段

作用

里面的内容原样保留,不用转义,适合放代码、特殊符号、脚本。

语法

xml

<![CDATA[
这里可以写任意符号 < > & 不用转义
随便写代码、文本
]]>

七、XML 约束(规范格式)

用来规定 XML 标签怎么写、有哪些标签、属性是什么,防止乱写。

1. DTD 文档类型定义

  • 早期约束方式
  • 规定标签结构、子标签数量、属性
  • 不支持数据类型校验

2. XSD(XML Schema)

  • 现在主流
  • 比 DTD 强大
  • 支持数据类型(数字、字符串、日期)
  • 支持命名空间,企业项目常用

八、XML 解析方式

程序读取 XML 只有两种主流方式:

  1. DOM 解析
  • 把整个 XML 加载到内存,形成树形结构
  • 可以增、删、改、查标签
  • 缺点:大文件占内存高
  1. SAX 解析
  • 逐行读取,事件驱动
  • 不把整个文档载入内存
  • 适合超大 XML 文件,只能读不能改

九、XML 实际应用场景(重点)

  1. 软件配置文件

    很多 Linux 程序、Java 项目、Maven、Spring、框架配置都用 XML

  2. 前端 / 后端数据传输 老式接口常用

  3. 桌面 / 软件界面布局 KDE、安卓、Qt 界面布局大量用 XML

  4. 结构化数据存储 代替简单数据库存配置、列表

  5. 文档、报表、格式描述


十、完整 XML 示例(可直接保存运行)

xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 用户信息XML示例 -->
<users>
    <user id="1">
        <name>张三</name>
        <age>22</age>
        <info><![CDATA[爱好 <编程> & Linux 折腾]]></info>
    </user>
    <user id="2">
        <name>李四</name>
        <age>23</age>
    </user>
</users>

十一、知识点定位

和你之前 man 命令学习文档 一样,这篇可以独立作为一份技术笔记;

后续学 Java 配置、框架配置、Linux 部分软件配置、KDE 桌面配置,都会用到 XML 语法规则。

需要我把它精简成「面试必背极简版」吗?