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();
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Discover more from

Subscribe to get the latest posts to your email.

Leave a comment

Trending