正在加载,请稍候…

XML 格式化工具:如何美化打印和验证 XML

在线格式化和验证 XML 文档。学习 XML 结构、命名空间、属性和常见解析错误。使用语法高亮和错误检测美化打印压缩的 XML。

XML 格式化工具:如何美化打印和验证 XML

什么是 XML?

XML(可扩展标记语言)是一种标记语言,旨在以人类可读且机器可读的格式存储和传输数据。与 HTML(定义了一组固定标签)不同,XML 允许您定义自己的标签,因此在表示任何结构化数据时具有高度灵活性。

XML 由 W3C 于 1998 年开发,至今仍广泛应用于企业系统、SOAP Web 服务、文档格式(DOCX、SVG、RSS)以及配置文件(Maven、Spring、Android)。

XML 格式化工具:如何美化打印和验证 XML 插图

XML 与 HTML 的主要区别

特性 XML HTML
目的 数据存储和传输 网页结构
标签名称 自定义,用户定义 固定(div, p, span...)
大小写敏感 大小写敏感 大小写不敏感
闭合标签 必须 部分可选
自闭合 空元素必须 可选
错误处理 严格(格式错误即无效) 宽松(浏览器猜测)

XML 语法规则

XML 有严格的语法要求:

  1. 恰好一个根元素:每个 XML 文档有一个根元素,包含所有其他元素。

  2. 标签大小写敏感<Name><name> 是不同的元素。

  3. 所有标签必须闭合:要么 <tag></tag>,要么自闭合 <tag />

  4. 正确嵌套:标签必须正确嵌套(不能重叠):

    错误:<b><i>text</b></i>
    正确:<b><i>text</i></b>
    
  5. 属性值必须加引号<element attr="value"> 或单引号。

  6. 特殊字符必须转义

    &  ->  &amp;
    <  ->  &lt;
    >  ->  &gt;
    "  ->  &quot;
    '  ->  &apos;
    

XML 格式化工具:如何美化打印和验证 XML 插图

格式良好 vs 有效 XML

格式良好的 XML 遵循所有语法规则。任何 XML 解析器都会接受它。

有效的 XML 还符合模式(DTD 或 XSD)。有效性是可选的,但对数据交换很重要。

XML 结构示例

<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="http://example.com/library">
  <book id="1" category="fiction">
    <title>The Great Gatsby</title>
    <author>F. Scott Fitzgerald</author>
    <year>1925</year>
    <price currency="USD">12.99</price>
  </book>
  <book id="2" category="technical">
    <title>Clean Code</title>
    <author>Robert C. Martin</author>
    <year>2008</year>
    <price currency="USD">35.99</price>
  </book>
</library>

XML 格式化工具:如何美化打印和验证 XML 插图

命名空间

XML 命名空间可防止在合并来自不同来源的 XML 时发生名称冲突:

<root
  xmlns:html="http://www.w3.org/1999/xhtml"
  xmlns:svg="http://www.w3.org/2000/svg">
  
  <html:div>HTML content</html:div>
  <svg:circle cx="50" cy="50" r="10"/>
</root>

现代开发中的 XML

虽然 JSON 在很大程度上取代了 REST API 中的 XML,但 XML 在以下场景中仍然必不可少:

  • SOAP Web 服务:在企业环境(银行、医疗)中仍然常见
  • Office 文档:DOCX、XLSX、PPTX 是包含 XML 文件的 ZIP 压缩包
  • SVG 图形:可缩放矢量图形基于 XML
  • RSS/Atom 订阅:Web 内容聚合使用 XML
  • Android:布局文件、AndroidManifest.xml
  • Maven/Gradle:Java 构建配置
  • Spring:应用上下文和配置
  • XSLT:用于将 XML 转换为其他格式的 XML 转换语言

XPath:查询 XML

XPath 是一种用于选择 XML 中节点的查询语言:

/library/book[@category='fiction']    # 选择小说类书籍
/library/book/title                   # 选择所有标题
//book[price > 20]                    # 价格超过 20 的书籍(文档中任意位置)
/library/book[last()]                 # 最后一本书
count(/library/book)                  # 统计所有书籍数量

使用此工具

粘贴任何 XML 文档,即可立即使用适当的缩进和语法高亮进行格式化和美化。该工具还会验证 XML 语法,并报告带有行号的具体错误。

-> 试试 XML 格式化工具