核心结论是 xml 全称可扩展标记语言,它本质是一种纯文本格式的数据存储与交换文件,核心作用是跨系统跨软件保存结构化数据,它不像 Word 图片视频那样直接展示内容给人看,主要是给程序读取解析使用,它最大特点是标签可以自己定义,不需要固定标签集,所以很多软件配置文件接口报文项目文档都选择使用 xml 文件,它可以把层级化的数据清晰分层保存,不同操作系统不同编程语言的程序都能识别同一份 xml 文件,解决不同系统之间数据互通的问题,但是 xml 本身不负责数据运算,也不会控制界面样式,只负责描述数据本身是什么内容,它和 html 不一样,html 是用来渲染网页显示效果,xml 重点是保存和传输数据。xml 能够广泛使用的底层原因是纯文本编码,通用性强,层级嵌套结构适合表达父子从属关系,标签自定义能力适配各行各业自定义数据规范,同时有成熟的校验机制也就是 dtd 和 xsd,可以校验 xml 文件数据是否符合预设规则,防止格式错误。日常使用的时候第一步确认 xml 文件用途,是软件配置还是接口数据,第二步用记事本或者专业编辑器打开查看内容,第三步如果需要修改,严格保留原有标签嵌套结构,不要随意删除尖括号标签,第四步保存之后重启对应软件或者程序,让程序重新加载 xml 文件,第五步如果报错就检查标签是否闭合大小写是否一致。综合来看 xml 文件就是结构化纯文本数据容器,主要承担配置存储跨系统数据交换,适合层级类数据,现在虽然 json 应用越来越多,但是大量老系统企业项目依旧在继续使用 xml 文件。
xml 文件主要应用场景
软件配置文件 很多桌面软件游戏软件会把参数选项保存在 xml 文件,修改这个文件就可以调整软件默认设置。
接口数据交换 早期 webservice 接口,服务端和客户端通信报文采用 xml 文件格式传递业务数据。
文档类标准 像办公文档矢量图纸电子书部分标准格式底层就是 xml,例如 office open xml 格式。
数据归档 企业业务报表日志层级数据导出保存,利用 xml 层级结构保存分类信息。
xml 核心结构特点
自定义标签 开发者可以根据业务自己命名标签,不像 html 标签是固定好的。
层级嵌套 支持父子节点嵌套,能够表达分类从属关系。
纯文本存储 使用 utf8 等文本编码,用普通文本编辑器就可以打开。
可校验 可以搭配 xsd 或者 dtd 定义规则,校验 xml 文件格式合法性。
标签必须闭合 每个开始标签都要有对应的结束标签,标签区分大小写。
xml 和 json 对比参考表
| 对比项 | xml 文件 | json |
|---|---|---|
| 数据描述 | 自定义标签嵌套结构 | 键值对数组结构 |
| 体积 | 相对更大,标签占用字符多 | 体积更小,字符精简 |
| 可读性 | 层级清晰,适合复杂嵌套 | 简洁,适合轻量接口 |
| 校验能力 | 支持 xsd dtd 强校验 | 原生没有强校验机制 |
| 适用场景 | 老系统企业级复杂文档 | 现代互联网接口轻量数据 |
打开 xml 文件常用工具
系统自带记事本 可以直接打开查看,适合简单查看,没有语法高亮。
专业编辑器 比如 notepad++ vscode,带语法高亮,出错提示,适合修改 xml 文件。
浏览器 大部分浏览器可以直接打开 xml 文件,会格式化树形展示节点。
编程解析库 各类编程语言内置解析库,程序读取 xml 文件提取里面数据。
常见易错点
xml 标签严格区分大小写,StartTag 和 starttag 会被程序识别成两个不同标签。
xml 不能随意交叉嵌套,嵌套顺序错乱会解析失败。
xml 文件如果包含特殊字符,需要转义,否则解析报错。
xml 本身不加密,如果存放敏感信息,需要额外加密处理。
【常见问题】
问题 1 xml 文件是干什么的,可以直接删除吗
回答 1 xml 文件是干什么的主要是保存配置或者交换数据,如果是软件自带 xml 文件,直接删除会造成软件参数丢失启动报错,确认是无用临时 xml 文件才可以删除。
问题 2 xml 文件是干什么的,和 html 有什么区别
回答 2 xml 文件是干什么的核心是存储结构化数据,html 是用来网页渲染展示,xml 标签自定义,html 标签是固定预设,这是两者最核心差别。
问题 3 xml 文件是干什么的,为什么现在很多项目改用 json
回答 3 xml 文件是干什么的传统优势是复杂层级和强校验,但是 xml 标签冗余体积偏大,json 更加轻量,所以新互联网项目更多选择 json,老系统依旧保留 xml 文件。
问题 4 xml 文件是干什么的,手机可以打开 xml 文件吗
回答 4 xml 文件是干什么的本质纯文本,手机可以安装文本编辑器打开 xml 文件,但是如果是程序内部 xml 配置,普通用户修改容易造成程序异常。
【免责申明】
本文 xml 文件是干什么的相关介绍属于通用技术科普,不同软件内部 xml 文件规范存在差异,修改程序自带 xml 文件前建议做好备份,错误修改会引发软件异常,因自行修改 xml 文件造成的数据丢失程序故障,相关后果自行承担。


