XML 解析器

XML(可扩展标记语言)是一种用于编码结构化数据的标记语言。虽然 JSON 在许多 Web API 中已经取代了 XML,但 XML 在企业系统、SOAP Web 服务和配置文件中仍然不可或缺。此工具可以解析和美化输出 XML,并提供正确的缩进。

规范

常见用例

  • 格式化 SOAP API 请求和响应
  • 读取和验证 Maven pom.xml 文件
  • 解析 RSS 和 Atom Feed 内容
  • 调试 Android 布局 XML 文件
  • 处理 SVG 图形文件
  • 检查 .NET 配置文件(web.config、app.config)

功能

  • 使用正确缩进进行格式化输出
  • 保留命名空间和前缀
  • 处理 CDATA 段和处理指令
  • 在元素旁显示属性
  • 转换为 JSON 以便于程序化处理
  • 验证 XML 结构的格式正确性

示例

Maven POM

试试看 →

定义依赖项的 Maven 项目对象模型。

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0.0</version>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
    </dependency>
  </dependencies>
</project>

提示

  • XML 区分大小写。<User> 和 <user> 是不同的元素。
  • 所有元素必须正确关闭。使用 <br/> 作为自闭合标签。
  • 属性值必须用引号括起来(单引号或双引号)。
  • 对包含 < 或 & 字符的内容使用 CDATA 段。

理解 XML 解析器

XML(可扩展标记语言)是 W3C 标准,用于以人类可读且机器可解析的格式编码结构化数据。与拥有固定标签集的 HTML 不同,XML 允许你定义自己的元素和属性,使其成为创建特定领域标记语言的元语言。1.0 规范于 1998 年发布,至今仍被广泛使用。

XML 的核心特征是其严格的语法。每个开始标签必须有对应的结束标签(或者是自闭合标签)。属性必须用引号括起来。元素必须正确嵌套。遵循这些规则的文档是“格式正确的”。如果文档还符合某个模式(DTD、XML Schema 或 RELAX NG),则称为“有效的”。这种严格性使 XML 在使用不同技术构建的系统之间进行数据交换时非常可靠。

命名空间是 XML 避免元素名称冲突的机制。命名空间是与前缀关联的 URI(xmlns:soap="..."),确保 <soap:Envelope> 和 <html:body> 可以在同一文档中共存而不产生歧义。命名空间在 SOAP Web 服务、SAML 断言、SVG 图形以及任何组合多种词汇表的文档中都是必不可少的。

虽然 JSON 由于其更轻量的语法已在大多数 Web API 中取代了 XML,但 XML 在企业集成(SOAP、EDI)、文档格式(DOCX、XLSX、ODF)、配置(Maven pom.xml、.NET web.config、Android 布局)、内容聚合(RSS、Atom)和矢量图形(SVG)中仍然占据主导地位。理解 XML 对于使用遗留系统、企业软件和文档处理管道至关重要。

格式正确的 XML 遵循基本语法规则:正确嵌套、关闭标签、属性用引号括起以及单一根元素。任何 XML 解析器都可以读取格式正确的 XML。有效的 XML 更进一步——它符合定义了允许哪些元素和属性、它们的顺序和数据类型的模式(DTD、XML Schema 或 RELAX NG)。验证是可选的,但在双方需要就文档结构达成一致的数据交换中很重要。

命名空间通过将元素与 URI 关联来防止元素名称冲突。命名空间使用 xmlns:prefix="URI" 声明,然后用作元素的前缀(<prefix:element>)。默认命名空间(xmlns="URI",不带前缀)适用于该元素及其未限定的后代。URI 不需要指向实际资源——它仅作为唯一标识符。CDATA 段(<![CDATA[ ... ]]>)提供了一种包含含有 < 和 & 等字符的内容的方式,无需将它们转义为 &lt; 和 &amp;。这对于在 XML 元素中嵌入 JavaScript、SQL 查询或 HTML 片段非常有用。

XML 提供了 JSON 所缺乏的多项功能:用于组合词汇表的命名空间、用于正式验证的模式、用于在元素内容旁添加元数据的属性、处理指令、混合内容(文本与元素交错)以及用于声明式转换的 XSLT。对于面向文档的数据、复杂的企业集成以及需要系统间正式契约的场景,XML 是更好的选择。JSON 更适合 Web 应用中的简单数据交换,在这些场景中其更轻量的语法和通用工具支持比 XML 的结构丰富性更为重要。

← 返回所有工具