Quick example of deserializing a chunk of XML into a set of classes: –
<?xml version="1.0" encoding="UTF-8"?> <!-- Parser configuration control XML --> <parserConfig version="1.0"> <parsers> <!-- Test--> <parse count="6" output="[0][3] = [5];"> <checks> <check index="0" type="whiteSpace" /> <check index="1" type="alphaNumeric" content="test"/> <check index="2" type="whiteSpace" /> <check index="3" type="alphaNumeric" /> <check index="4" type="separator" /> <check index="5" type="alphaNumeric" /> </checks> </parse> <!-- Test2--> <parse count="4" output="[0][3]();"> <checks> <check index="0" type="whiteSpace" /> <check index="1" type="alphaNumeric" content="test2"/> <check index="2" type="whiteSpace" /> </checks> </parse> </parsers> </parserConfig>
[Serializable()]
public class Parse
{
[XmlAttribute("count")]
public int Count { get; set; }
[XmlAttribute("output")]
public string Output { get; set; }
[XmlArray("checks")]
[XmlArrayItem("check", typeof(Check))]
public Check[] Check { get; set; }
}
[Serializable()]
public class Check
{
[XmlAttribute("index")]
public int Index { get; set; }
[XmlAttribute("type")]
public string Type { get; set; }
[XmlAttribute("content")]
public string Content { get; set; }
}
[Serializable()]
[XmlRoot("parserConfig")]
public class ParserCollection
{
[XmlArray("parsers")]
[XmlArrayItem("parse", typeof(Parse))]
public Parse[] Parse { get; set; }
}
public Parser()
{
ParserCollection config = null;
string path = "../../../config.xml";
XmlSerializer serializer = new XmlSerializer(typeof(ParserCollection));
StreamReader reader = new StreamReader(path);
config = (ParserCollection)serializer.Deserialize(reader);
reader.Close();
}



Leave a comment