2011-02-04 12 views
8

Ho bisogno di confrontare due documenti xml.È meglio utilizzare XNodeEqualityComparer o XElement.DeepEquals per confrontare oggetti xml?

Si supponga che ognuno di carico del seguente XElement da un Stream:

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

che utilizzano tale, quale dei seguenti due è meglio:

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

o

XElement.DeepEquals(actualElement, expectedElement); 

I sappi che la seconda opzione è più breve, ma sono più interessato a capire se hai qualche spe miglioramenti o meglio/confronto più approfondito quando si utilizza uno o l'altro. Il confronto stesso deve confrontare gli elementi, gli attributi e tutti i valori tra i due documenti xml.

risposta

11

Il XNodeEqualityComparer.Equals method chiama semplicemente lo XNode.DeepEquals method. Quindi non c'è differenza tra le due chiamate.

+2

Grazie. Suppongo che se avessi effettivamente acceso Reflector e guardato XNodeEqualityComparer.Equals, avrei visto questo: public bool Equals (XNode x, XNode y) { return XNode.DeepEquals (x, y); }. Doh! – schellack

Problemi correlati