如何比较XML文档

3

我需要比较两个XML块:

<elem type="p:type1" xmlns:p="myns" />

<elem type="g:type1" xmlns:g="myns" />

一旦我们看到type属性是QName而不仅仅是字符串,它们在语义上是等价的。是否有一种工具可以在我提供架构后进行这样的比较?此外,是否有这样的API?


糟糕,现在这两个重复的问题互相有重复的投票了!请不要在这个问题上投票关闭,去另一个问题投票。 - Zifre
这个问题是其他很多类似问题的重复,比如https://dev59.com/8XRB5IYBdhLWcg3wtJCF,因此也应该被关闭。 - anon
好的,这两个都应该关闭。但是另一个应该被删除。这个应该留给用不同词语提问的其他人。 - Zifre
有人能够鉴定重复内容吗?这个链接:https://dev59.com/8XRB5IYBdhLWcg3wtJCF 是关于工具的。而这个链接似乎是关注于以编程方式进行比较。 - Cheeso
3个回答

1

1

可能有很多工具可以做到这一点,其中之一是Xml Diff和Path,通过MS XML downloads

Microsoft XML Diff和Patch实用程序可用于比较两个XML文档,然后使用差异修补原始文档,以创建最终文档。该实用程序可以检测结构更改(例如XML子树的移动),并可以创建描述两个XML文档之间差异的Xml Diff Language Diffgram(XDL diffgram或仅diffgram)。然后可以使用diffgram来显示这些差异或使用XML Patch工具进行修补。

XML Diff执行基于XML的比较XML文档,而不是常见的词汇比较。因此,它

忽略属性顺序。忽略无关紧要的空格。不区分空元素()和没有内容的元素。不关心文档编码。

这些工具可以通过cmd line和API使用。


0

同时,差异/补丁语言XML Patch已被规定并弃用了Microsoft XML Diff。请查看this question以获取可能的工具。特别是xmldiff似乎能够在XML文档之间进行适当的比较。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接