通过 URL 加载 XML 结果
通过结果页查询参数加载 Base64 编码的 XML 或远程 XML 文件。
Compare XML 可以通过 URL 查询参数加载对比输入,让你直接从链接或文档中打开差异结果。解析和对比均在浏览器中运行。
URL 加载原理
XML 结果页负责 URL 加载。页面读取 base 和 contrast 查询参数,解码后自动运行对比。
https://comparejson.com/tools/compare-xml/result?base=...&contrast=...
请务必对每个完整的 base 和 contrast 参数值使用 encodeURIComponent。远程签名 URL 中未编码的 & 或 # 会破坏查询参数解析。
const url = `https://comparejson.com/tools/compare-xml/result?base=${encodeURIComponent(baseValue)}&contrast=${encodeURIComponent(contrastValue)}`;
Base64 模式将编码后的 XML 本身放在 URL 中;远程 URL 模式保存来源地址,由浏览器请求这些来源。两种模式都不会创建服务器端快照。
方法一:从文件 URL 加载 XML
将可公开访问的 HTTP/HTTPS URL 传给 base 和 contrast,并使用 encodeURIComponent 对每个来源地址进行百分号编码。
https://comparejson.com/tools/compare-xml/result?base=https%3A%2F%2Fcomparejson.com%2Fexample_data%2Fdemo.base.xml&contrast=https%3A%2F%2Fcomparejson.com%2Fexample_data%2Fdemo.contrast.xml
结果页加载时,浏览器会请求两个来源并自动对比其中的 XML。与嵌入两份完整文档相比,这种方式的链接更短,适合对比版本控制或云存储中的文件。
也支持 GitHub Gist URL。Gist 页面地址会自动解析为原始文件内容,无需手动复制 raw 地址。例如:
https://comparejson.com/tools/compare-xml/result?base=https%3A%2F%2Fgist.github.com%2Funitstack%2F689488c928052e85e67e6d71564de72f%2Fraw%2Fdemo.base.xml&contrast=https%3A%2F%2Fgist.github.com%2Funitstack%2F689488c928052e85e67e6d71564de72f%2Fraw%2Fdemo.contrast.xml
方法二:从 Base64 加载 XML
将每份 XML 文档编码为 Base64,再把编码值赋给 base 或 contrast 前使用 encodeURIComponent。
<root><message>base base64String</message></root>
<root><message>contrast base64String</message></root>
经过百分号编码的 Base64 值会生成如下 URL:
https://comparejson.com/tools/compare-xml/result?base=PHJvb3Q%2BPG1lc3NhZ2U%2BYmFzZSBiYXNlNjRTdHJpbmc8L21lc3NhZ2U%2BPC9yb290Pg%3D%3D&contrast=PHJvb3Q%2BPG1lc3NhZ2U%2BY29udHJhc3QgYmFzZTY0U3RyaW5nPC9tZXNzYWdlPjwvcm9vdD4%3D
你可以使用 base-64.com 或自己的工具编码 XML。这种模式是自包含的,但大型文档可能生成过长的 URL,无法被浏览器、聊天工具或短链接服务可靠处理。
安全与隐私
- 分享的 URL 包含 XML 或指向 XML 的链接,请只发送给有权访问的人。
- 远程 XML 文件必须可公开访问,并配置适当的 CORS 响应头。从 URL 导入会向指定来源发起请求。
- URL 中的 Base64 编码数据会随页面请求传输,并可能被托管服务日志记录。请勿在 URL 中放入敏感数据。
- 如需创建由服务器托管的短链接快照,请参阅分享 XML 结果。