2011-02-04 70 views
8

我需要比較兩個XML文檔。是更好地使用XNodeEqualityComparer或XElement.DeepEquals比較XML對象?

假設每個以下的XElement的負載從Stream

XElement actualElement = XElement.Load(actual); 
XElement expectedElement = XElement.Load(expected); 

使用,其中以下兩種比較好:

XNodeEqualityComparer comparer = new XNodeEqualityComparer(); 
comparer.Equals(actualElement, expectedElement); 

XElement.DeepEquals(actualElement, expectedElement); 

我知道第二個選項是短,但我更感興趣的是你是否沒有得到任何SPE當使用其中一個或另一個時,可以進行改進或更好/更深的比較比較本身需要比較兩個xml文檔之間的元素,屬性和所有值。

回答

11

XNodeEqualityComparer.Equals method只是調用XNode.DeepEquals method。所以這兩個電話沒有區別。

+2

謝謝。我想,如果我實際上已經解僱了反射,看着XNodeEqualityComparer.Equals,我早就看到了這一點:公共布爾等於(XNode X,XNode Y) { 回報XNode.DeepEquals(X,Y); }。衛生署! – schellack 2011-02-07 21:02:26