My XML looks like follows:
1250.00
1900.00
This
Dynamic element names can be simple to process using the XmlSerializer.UnknownElement event handler.
For example, we have following xml:
1250.00
1900.00
and classes:
[XmlRoot("main")]
public class Main
{
public List Rates { get; set; }
}
public class Rate
{
public string Value { get; set; }
}
Do deserialize:
var xs = new XmlSerializer(typeof(Main));
// add event handler
xs.UnknownElement += Xs_UnknownElement;
Main main;
using (var fs = new FileStream("test.xml", FileMode.Open))
main = (Main)xs.Deserialize(fs);
The event handler code:
private void Xs_UnknownElement(object sender, XmlElementEventArgs e)
{
Main main = (Main)e.ObjectBeingDeserialized;
foreach (XmlNode node in e.Element.ChildNodes)
main.Rates.Add(new Rate { Value = node.InnerText });
}