lunes, 25 de febrero de 2013

Convert XML a List Object- List Object a XML

  • El archivo XML
 <usuarios>
                 <usuario>
                        <FirstName>Pepe</FirstName>
                        <LastName>Gonzalez</LastName>
                 </usuario>
       
                 <usuario>
                         <FirstName>Fernando</FirstName>
                         <LastName>Lopez</LastName>
                 </usuario>
</usuarios>


  • La clase.
[XmlRoot(ElementName = "usuario")]
public class Usuario
{
         public string FirstName { get; set; }
         public string LastName { get; set; }
}

  •  Los metodos:
public static T XmlToObject<T>(string xml)
{
          using (var xmlStream = new StringReader(xml))
          {
                        var serializer = new XmlSerializer(typeof(T));
                        return (T)serializer.Deserialize(XmlReader.Create(xmlStream));
           }
}

  //path-> la ruta del archivo .xml
//nodePath -> "//usuarios/usuario"
public static List<T> XmlToObjectList<T>(string pathXml, string nodePath)
{
         var xmlDocument = new XmlDocument();
         xmlDocument.Load(pathXml);
         var returnItemsList = new List<T>();
     
          foreach (XmlNode xmlNode in xmlDocument.SelectNodes(nodePath))
         {
                      returnItemsList.Add(XmlToObject<T>(xmlNode.OuterXml));
         }
 
         return returnItemsList;
}

  • Finalmente llamamos al metodo:
 var List<Usuario> = Convertors.XmlToObjectList<Usuario>(@"C:\Usuarios.xml","//usuarios/usuario");

No hay comentarios:

Publicar un comentario