我需要比较两个XML块:
<elem type="p:type1" xmlns:p="myns" />
<elem type="g:type1" xmlns:g="myns" />
一旦我们看到type
属性是QName而不仅仅是字符串,它们在语义上是等价的。是否有一种工具可以在我提供架构后进行这样的比较?此外,是否有这样的API?
我需要比较两个XML块:
<elem type="p:type1" xmlns:p="myns" />
<elem type="g:type1" xmlns:g="myns" />
一旦我们看到type
属性是QName而不仅仅是字符串,它们在语义上是等价的。是否有一种工具可以在我提供架构后进行这样的比较?此外,是否有这样的API?
可能有很多工具可以做到这一点,其中之一是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使用。
同时,差异/补丁语言XML Patch已被规定并弃用了Microsoft XML Diff。请查看this question以获取可能的工具。特别是xmldiff似乎能够在XML文档之间进行适当的比较。