XML to and from an object (Object to XML)

Share on:

Serialize an object to xml.

1var docs = new MyObject();
2
3var serializer = new XmlSerializer(typeof(MyObject));
4var stringWriter = new StringWriter();
5var writer = XmlWriter.Create(stringWriter);
6serializer.Serialize(writer, docs);
7var xml = stringWriter.ToString(); // Your xml

Deserialize object from xml

 1protected T FromXml<T>(String xml)
 2{
 3    T returnedXmlClass = default(T);
 4
 5    try
 6    {
 7        using (TextReader reader = new StringReader(xml))
 8        {
 9            try
10            {
11                returnedXmlClass = 
12                    (T)new XmlSerializer(typeof(T)).Deserialize(reader);
13            }
14            catch (InvalidOperationException)
15            {
16                // String passed is not XML, simply return defaultXmlClass
17            }
18        }
19    }
20    catch (Exception ex)
21    {
22    }
23
24    return returnedXmlClass ;        
25}
26
27//Call it using this code:
28YourStrongTypedEntity entity = FromXml<YourStrongTypedEntity>(YourMsgString);

Get XML from file

1var doc = new XmlDocument();
2doc.Load(@"c:\temp\test.xml");
3string xmlcontents = doc.InnerXml;

eller som XDocument för att kunna köra LINQ mot den

1var doc = XDocument.Load(@"c:\temp\test.xml");
2var users = from user in doc.Descendants("Users").First().Descendants("User")
3            select user;