XML 快速开始

通过完整服务配置示例学习 XML 对比,涵盖基准与对照、结果导航、Git Diff、URL 加载、故障排查和分享隐私。

Compare XML 对比解析后的元素、属性和文本,而不只是把 XML 文档当作逐行文本。本指南通过一次配置审查,说明如何填写基准与对照、理解结果并安全分享。

从基准与对照开始

两个编辑器有明确的方向:

编辑器放置内容常见示例
基准(Base)原始或参考文档已部署配置、预期 SOAP 响应、转换前的数据
对照(Contrast)要与基准核对的文档拟部署配置、实际 SOAP 响应、转换后的数据

只存在于对照中的元素或属性会标记为新增,只存在于基准中的则标记为删除。交换两侧输入后,新增与删除也会互换,值变更的前后值随之反转。

完整示例

假设你正在部署前审查服务目录。将以下文档粘贴到基准:

<?xml version="1.0" encoding="UTF-8"?>
<catalog environment="production">
  <!-- 当前部署的服务 -->
  <service name="billing" enabled="true">
    <endpoint protocol="https">https://billing.example.com/api</endpoint>
    <limits>
      <requests>100</requests>
      <timeout>2.5</timeout>
    </limits>
    <region>us-east</region>
    <region>eu-west</region>
    <description><![CDATA[Primary billing service]]></description>
  </service>
</catalog>

将拟部署文档粘贴到对照:

<?xml version="1.0" encoding="UTF-8"?>
<catalog environment="production">
  <!-- 拟部署的服务配置 -->
  <service name="billing" enabled="true">
    <endpoint protocol="https">https://billing.example.com/api</endpoint>
    <limits>
      <requests>150</requests>
      <timeout>2.50</timeout>
    </limits>
    <region>us-east</region>
    <region>eu-west</region>
    <region>ap-south</region>
    <description><![CDATA[Primary billing API]]></description>
  </service>
</catalog>

本示例请选择按索引匹配重复元素,并关闭两个大小写选项。请求上限和描述发生变化,第三个区域为新增。超时值 2.5 与 2.50 会转换为同一个数字,注释变化不会产生差异。

输入 XML

打开 Compare XML,在任一编辑器中可以:

  • 粘贴完整且格式正确的 XML 文档;
  • 拖放 XML 文件,或使用文件加载操作;
  • 从 HTTP/HTTPS URL 导入 XML。GitHub Gist 页面链接会解析为原始文件内容。

通过 URL 导入时,来源必须可供浏览器公开访问,返回 XML 或纯文本,并允许浏览器通过 CORS 发起请求。下载成功也不代表内容一定是有效 XML。

解析和对比均在浏览器本地执行。从 URL 导入会联系你指定的来源;使用分享或在 URL 中放置数据前,请阅读下方隐私说明。

选择对比规则

使用对比旁边的设置,选择与数据含义相符的规则:

  • 按索引、LCS 或无序决定重复子元素的匹配方式。
  • 忽略元素/属性名大小写将 Service 与 service 等名称视为等价。
  • 忽略值大小写在比较文本和属性值时不区分大小写。

形似数字的值会自动转换为数字,没有单独的数字字符串开关。注释会被忽略,CDATA 作为文本参与对比。示例、重复值处理和命名空间前缀限制请参阅 XML 对比规则。

运行对比

点击对比。工具会验证并解析两侧输入,再递归比较其结构。结果页 /zh/tools/compare-xml/result 默认打开数据对比视图。

示例会将请求上限和 CDATA 文本标为值变更,将新区域标为新增。结果分类含义如下:

  • 新增(绿色):元素、属性或值只存在于对照侧。
  • 删除(红色):元素、属性或值只存在于基准侧。
  • 值变更(黄色):对应位置的值不同。

相同表示解析后的文档在当前规则下相等,并不表示原始 XML 文本逐字节一致。

阅读规范化结果

数据对比侧边栏按类别分组并显示完整路径。点击条目可在对齐的编辑器中定位,也可使用类别开关聚焦当前审查。

数据对比展示的是根据解析值重新构建的 XML,因此缩进、行布局、数字写法、注释和 CDATA 形式都可能与输入不同。它是规范化结果视图,不是原始输入的逐字副本。

两种视图回答不同问题:

  • 数据对比说明解析后的 XML 在所选规则下发生了什么变化。
  • Git Diff 说明每个编辑器中原始文本发生了什么变化。注释、格式和数字写法的编辑即使在数据对比中被视为相等,仍可能在这里显示。

结果页的语义设置位于数据对比视图。从 Git Diff 切回后即可修改规则并重新计算结构结果。

分享与敏感数据

仅在编辑器中输入或粘贴 XML 进行对比,不会上传这些数据。解析和对比计算均在浏览器本地执行。使用分享会将对比内容上传到分享服务器,并生成带有 share_id、指向 /zh/tools/compare-xml/result 的链接;在过期前,任何获得链接的人都能加载该快照。

放入 URL 查询参数的数据会随页面请求传输,并可能被托管服务日志记录,因此请勿在 URL 中放入敏感数据。这既包括 Base64 编码的 XML,也包括远程来源地址。从 URL 导入还会向你指定的来源发起请求。

故障排查

编辑器提示 XML 无效

检查两侧是否存在标签不匹配、未转义的 &、属性缺少引号或文档外多余文本。移除日志或 HTTP 头等外围内容,确保每个编辑器只包含格式正确的 XML。

一次插入导致许多重复元素变化

按索引比较位置,插入元素可能使后续所有同级元素移位。顺序重要且希望已有元素跨插入、删除保持对齐时,请使用 LCS。只有顺序没有意义时才使用无序;重复元素的出现次数仍然重要。

预期变化没有显示

检查当前大小写选项和重复元素匹配方式。注意注释会被忽略,CDATA 按文本比较,形似数字的值会转换为数字。侧边栏中隐藏的类别也会让条目暂时不可见。需要审查精确源文本时,请切换到 Git Diff。

URL 导入失败

确认基准和对照参数或编辑器导入都使用可访问的 HTTP/HTTPS URL,并检查响应内容类型、XML 有效性、身份验证要求和 CORS 策略。对于 Gist,还要确认链接指向可访问的内容。

阅读 XML 对比规则,根据数据含义选择选项,而不是只为了让差异看起来更少。

浏览全部文档

查找对比选项、结果分享、浏览器扩展、AI 助手与各语言库的实用指南。