Created
October 10, 2013 17:16
-
-
Save krcourville/6922112 to your computer and use it in GitHub Desktop.
XmlDiff Code Sample
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| void Main() | |
| { | |
| var contact = new Contact{ | |
| FirstName = "John", | |
| LastName = "Smith" | |
| }; | |
| var sourceXml = ToXml(contact); | |
| contact.LastName = "Changed"; | |
| var targetXml = ToXml(contact); | |
| var table = GetChangeHtml(sourceXml,targetXml); | |
| var html = string.Format("<html><body><table>{0}</table></body></html>",table); | |
| File.WriteAllText(@"\test.html",html); | |
| Process.Start(@"\test.html"); | |
| } | |
| string ToXml<T>(T o){ | |
| var serializer = new XmlSerializer(typeof(T)); | |
| var writer = new StringWriter(); | |
| serializer.Serialize(writer,o); | |
| return writer.ToString(); | |
| } | |
| string GetChangeHtml(string xmlSource, string xmlChanged){ | |
| var sourceReader = XmlReader.Create( new StringReader(xmlSource)); | |
| var changedReader = XmlReader.Create( new StringReader(xmlChanged)); | |
| var diffgram = new StringWriter(); | |
| var diffgramwriter = XmlWriter.Create(diffgram); | |
| var xmlDiff = new XmlDiff(); | |
| xmlDiff.Compare(sourceReader,changedReader, diffgramwriter); | |
| var view = new XmlDiffView(); | |
| sourceReader = XmlReader.Create(new StringReader(xmlSource)); | |
| view.Load(sourceReader,XmlReader.Create( new StringReader(diffgram.ToString()))); | |
| var htmlwriter =new StringWriter(); | |
| view.GetHtml(htmlwriter); | |
| return htmlwriter.ToString(); | |
| } | |
| // Define other methods and classes here | |
| public class Contact | |
| { | |
| public string FirstName { get; set; } | |
| public string LastName { get; set; } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment