Una delle problematiche tipiche che ci troviamo ad affrontare spesso è comparare due file XML. La comparazione mediante stringhe è impossibile, dato che per la semantica XML, i due file seguenti sono uguali
<Dati A="a" B="b" /><Dati B="b" A="a" />
Come fare?
Oggi ho scoperto che dentro la classe Cryptography esiste una classe chiamata (con un nome tra i più astrusi dell'universo) XmlDsigC14NTransform che si occupa (per motivi completamente diversi da quelli che servono a noi) di trasformare l'Xml in una rappresentazione canonizzata, quindi utilizzabile per fare comparazioni che non considerino gli elementi "estranei" dell'Xml (ordine dei nodi, whitespace, ecc.).
Quindi, con poche righe di...