Existen varias formas de llenar un objeto por medio de valores incrustados en XML(deserialización) y esta que planteo a continuación es la forma más comprensible de hacerlo.
Teniendo el siguiente texto de xml:
<padre> <hijo> <id>18</id> <valor>CFE7785</valor> <entero>1</entero> </hijo> <padre>
Primero tenemos que hacer un conjunto de clases las cuales nos ayudaran a guardar los valores:
[XmlRoot("padre")] public class padre { [XmlElement("hijo")] public List lstHijos{ get; set; } } public class hijo { [XmlElement("id")] public int id { get; set; } [XmlElement("valor")] public string valor { get; set; } [XmlElement("entero")] public int entero { get; set; } }
Y ahora el proceso para la magia:
string xml= "<padre> <hijo> <id>18</id> <valor>CFE7785</valor> <entero>1</entero> </hijo> <padre>" XmlSerializer serializer = new XmlSerializer(typeof(padre)); using (TextReader reader = new StringReader(xml)) { //de esta manera se deserializa padre result = (padre)serializer.Deserialize(reader); }