none
leer XML y llevarlo a list<> con Linq RRS feed

  • Pregunta

  • hola tengo el siguiente XML

    <?xml version="1.0" encoding="UTF-8"?>
    
    
    <personas>
    
    <persona>
    
    <nombre>alber</nombre>
    
    <apellido1>Efren </apellido1>
    
    <apellido2>gonzalez</apellido2>
    
    </persona>
    
    <persona>
    
    <nombre>Otto</nombre>
    
    <apellido1>Arias</apellido1>
    
    <apellido2>perez</apellido2>
    
    </persona>
    
    <persona>
    
    <nombre>yina</nombre>
    
    <apellido1>Arenas</apellido1>
    
    <apellido2>rico</apellido2>
    
    </persona>
    
    </personas>
    necesito llevar el tag persona a una lista con linq... el problema es que no soy experto con lambda ;)

    miércoles, 20 de abril de 2016 19:18

Respuestas

  • Hola,

    Primeramente debes especificar que lenguaje, C# o Vb.Net.

    Te dejo un ejemplo en C#.

    Mi Clase :

       public class Persona
        {
            public string nombre { get; set; }
            public string apellido1 { get; set; }
            public string apellido2 { get; set; }
        }

    Como guardar en la lista.

                    XDocument xml = XDocument.Load("miRutaDeArchivo.xml");
    
                    List<Persona> personas = xml.Root.Elements("persona").
                                                      Select(x => new Persona
                                                      {
                                                          nombre = (string)x.Element("nombre"),
                                                          apellido1 = (string)x.Element("apellido1"),
                                                          apellido2 = (string)x.Element("apellido2")
                                                      }).ToList();

    Espero te sirva.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 21 de abril de 2016 1:53

Todas las respuestas

  • Hola,

    Primeramente debes especificar que lenguaje, C# o Vb.Net.

    Te dejo un ejemplo en C#.

    Mi Clase :

       public class Persona
        {
            public string nombre { get; set; }
            public string apellido1 { get; set; }
            public string apellido2 { get; set; }
        }

    Como guardar en la lista.

                    XDocument xml = XDocument.Load("miRutaDeArchivo.xml");
    
                    List<Persona> personas = xml.Root.Elements("persona").
                                                      Select(x => new Persona
                                                      {
                                                          nombre = (string)x.Element("nombre"),
                                                          apellido1 = (string)x.Element("apellido1"),
                                                          apellido2 = (string)x.Element("apellido2")
                                                      }).ToList();

    Espero te sirva.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 21 de abril de 2016 1:53
  • no es crear el xml, es leerlo con linq y llevarlo a una lista!!!
    viernes, 29 de abril de 2016 23:23
  • Hola,

    [-] no es crear el xml, es leerlo con linq y llevarlo a una lista!!!

    Y cuál es el problema?, porque el xml de donde vas a obtener los datos proviene de una url no?, lo que hago es cargar ese archivo xml, y procesarlo, para eso tengo que crear la clase que tiene los mismos atributos iguales a los nodos que tiene  el xml, para así poder capturar los valores e ir añadiendo a la lista.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 29 de abril de 2016 23:34
  • Gracias me ha funcionado, le hize unas modificaciones.
    miércoles, 11 de mayo de 2016 23:10