关于 Compare Xml
Compare Xml 是面向开发者的 XML 对比工具包,提供结构化 API、命令行、VSCode 扩展和 MCP 服务。它以路径和变更类型报告差异,并支持可配置的数组匹配方式。
主要功能
- 01深度比较元素、属性和文本
- 02三种数组匹配策略
- 03键和值的大小写不敏感匹配
- 04两种格式的路径追踪
- 05命令行表格与 JSON 输出
- 06VSCode 对齐差异视图和导航
适用场景
- 01检查不同版本 XML 的变化
- 02选择按顺序或无序匹配数组
- 03按路径和变更类型筛选差异
MCP 相关
命令行工具可作为 MCP 服务启动,为支持 MCP 的 AI 助手提供 XML 对比功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
compare-xml
用于结构化 XML 比较的工具包——查找两个 XML 文档之间的变化,并控制键、值和数组的匹配方式。
为什么需要
大多数 XML 差异工具要么输出无结构的文本,要么隐藏关键信息(例如元素添加的位置、数组的差异在于顺序还是内容)。compare-xml 会将 XML 解析为结构化表示,并返回差异列表——每条记录都包含路径、所属一侧(base / contrast / both)以及变化类型(added、deleted、valueChanged),方便你据此渲染、筛选或编写程序。
功能
- 深度比较 XML 元素、属性、数组和文本值。
- 三种数组比较策略:
byIndex(默认)、lcs(通过最长公共子序列实现最小差异)和unordered(多重集合匹配)。 - 忽略大小写匹配键和/或值。
- 路径跟踪,支持分段数组和点表示法两种形式。
- CLI 支持表格或 JSON 输出,可读取内联字符串或文件。
- 内置 MCP 服务——可将 CLI 接入任何支持 MCP 的 AI 助手。
- Agent Skill——一个技能即可用于 Claude Code、OpenAI Codex CLI 和 OpenCode。
- 提供完整的 TypeScript 类型。
软件包
这是一个 pnpm 工作区:
| 软件包 | 描述 |
|---|---|
@compare-xml/core | 核心比较库(编程接口)。 |
@compare-xml/cli | 命令行工具和 MCP 服务,基于 core 构建。 |
compare-xml-vscode | VSCode 扩展:对齐差异视图和差异导航器。 |
快速入门
库
npm install @compare-xml/core
import { compareXML } from '@compare-xml/core';
const differences = compareXML({
baseXML: '<user><name>Alice</name><age>30</age></user>',
contrastXML: '<user><name>Bob</name><age>30</age><email>[email protected]</email></user>',
});
// [
// { pathString: 'user.name', pathBelongsTo: 'both', diffType: 'valueChanged', ... },
// { pathString: 'user.email', pathBelongsTo: 'contrast', diffType: 'added', ... },
// ]
完整 API 请参阅 核心 README。
CLI
npm install -g @compare-xml/cli
compare-xml base.xml contrast.xml
┌──────────────┬──────────────┐
│ Key │ Change Type │
├──────────────┼──────────────┤
│ (Base) a │ valueChanged │
│ (Base) b │ deleted │
│ (Contrast) c │ added │
└──────────────┴──────────────┘
使用 --json-export 输出机器可读结果,或使用 --mcp 启动 MCP 服务。所有标志和 MCP 工具架构请参阅 CLI README。
MCP
{
"mcpServers": {
"compare-xml": {
"command": "npx",
"args": ["@compare-xml/cli@latest", "--mcp"]
}
}
}
技能
一个 SKILL.md 文件即可教会 AI 编码助手按需调用 CLI。该文件遵循开放的 Agent Skills 格式,适用于 Claude Code、OpenAI Codex CLI、OpenCode、Cursor 等 50 多种工具。
最快的安装方式是使用 npx skills——它会自动检测你已安装的所有 Agent,并将技能添加到每个 Agent 中:
npx skills add unitstack/compare-xml
开发
需要 Node.js ≥ 20 和 pnpm。
# install dependencies
pnpm install
# build all packages
pnpm -r build
# run tests across the workspace
pnpm -r test
# lint
pnpm -r lint
仓库结构:
apps/
└── compare-xml-vscode/ # VSCode extension
packages/
├── compare-xml-core/ # @compare-xml/core — library
├── compare-xml-cli/ # @compare-xml/cli — CLI + MCP server
└── internal/ # shared eslint/tsconfig (not published)
skills/
└── compare-xml/ # SKILL.md for Claude Code / Codex CLI / OpenCode
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。