【发布时间】:2012-03-17 14:45:10
【问题描述】:
我想通过标签名称和属性名称来比较两个(或更多)XML 文件。我对属性或节点的值不感兴趣。
在谷歌上搜索我找到了 XMLDiff 补丁 (http://msdn.microsoft.com/en-us/library/aa302294.aspx),但它对我不起作用......或者我不知道如何进行设置以适合我。 档案A
<info>
<Retrieve>
<LastNameInfo>
<LNameNum attribute="some_val">1</LNameNum>
<NumPeople>1</NumPeople>
<NameType/>
<LName>TEST</LName>
</LastNameInfo>
<Segment>
<SegNum>1</SegNum>
<Comment>A test</Comment>
</Segment>
<Segment>
<SegNum>2</SegNum>
<Dt>20110910</Dt>
<Comment>B test</Comment>
</Segment>
</Retrieve>
</info>
文件 B
<info>
<Retrieve>
<LastNameInfo>
<LNameNum attribute="other_val">4</LNameNum>
<NumPeople>1</NumPeople>
<NameType/>
<LName>TEST7</LName>
</LastNameInfo>
<Segment>
<SegNum>1</SegNum>
<Comment>A test</Comment>
</Segment>
<Segment>
<SegNum>2</SegNum>
<Dt>20110910</Dt>
<Comment>B test</Comment>
</Segment>
</Retrieve>
</info>
这两个文件必须相等。
谢谢!
【问题讨论】:
-
你只需要知道它们是否不同,还是你也需要知道它们的区别?
-
@Lloyd,好吧 Linq 有 DeepEquals 函数,但是如果属性值或节点值不同,则返回 fals。 @Reinaldo,只要不同。
-
Xmldiffpatch.exe 对您不起作用是什么意思?
-
也许我不知道如何设置 XmlDiffOptions 来忽略属性和节点的值。