From SOAP, to app configuration, model templating, EDI/ETL, and beyond, XML is a mainstay in software and will continue to be (see- HTML)
Source Code:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Xml.Serialization;
using System.IO;
using System.Xml.Linq;
using System.Xml;
namespace DemoTests
{
[TestClass]
public class TextXmlSerialization
{
public const string xml =
"<XMLEntityCollection>" +
"<XMLEntities>" +
"<XMLEntity>" +
"<ID>1</ID>" +
"<Name>TestName1</Name>" +
"</XMLEntity>" +
"<XMLEntity>" +
"<ID>2</ID>" +
"<Name>TestName2</Name>" +
"</XMLEntity>" +
"</XMLEntities>" +
"</XMLEntityCollection>";
[TestMethod]
public void TestDeserialize()
{
XmlSerializer serializer = new XmlSerializer(typeof(XMLEntityCollection));
using (StringReader reader = new StringReader(xml))
{
XMLEntityCollection ents = (XMLEntityCollection)serializer.Deserialize(reader);
TestSerialize(ents);
}
}
[TestMethod]
public void TestSerialize(XMLEntityCollection ents)
{
XmlSerializer xmlSerializer = new XmlSerializer(ents.GetType());
using (StringWriter stringWriter = new StringWriter())
{
xmlSerializer.Serialize(stringWriter, ents);
Assert.IsNotNull(stringWriter);
}
}
}
[Serializable()]
public class XMLEntity
{
[XmlElement("ID")]
public string Id { get; set; }
[XmlElement("Name")]
public string Name { get; set; }
}
[Serializable()]
[XmlRoot("XMLEntityCollection")]
public class XMLEntityCollection
{
[XmlArray("XMLEntities")]
[XmlArrayItem("XMLEntity", typeof(XMLEntity))]
public XMLEntity[] Ents { get; set; }
}
}
.NET XML Deserialization with System.Xml.Serialization:
Instantiated (ents) object containing XML from the deserialized XML string
.NET XML Serialization with System.Xml.Serialization:
XML genertaed by the stringWriter when serializing ents object into XML using the NET XMLSerializer type
Reference: https://stackoverflow.com/questions/364253/how-to-deserialize-xml-document
No comments:
Post a Comment