Foros del Web » Programación para mayores de 30 ;) » .NET »

Mostrar atributos con linq to xml

Estas en el tema de Mostrar atributos con linq to xml en el foro de .NET en Foros del Web. Hola, estoy intentando mostrar los atributos de un elemento de xml pero no consigo que funcione. Este es el código que utilizo: El xml <contactos> ...
  #1 (permalink)  
Antiguo 07/05/2009, 04:40
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Mostrar atributos con linq to xml

Hola, estoy intentando mostrar los atributos de un elemento de xml pero no consigo que funcione.

Este es el código que utilizo:

El xml

<contactos>
<contacto>
<id lang="es" version="1.0">1</id>
<nombre>Pedro</nombre>
<apellidos>Garcia Pérez</apellidos>
<poblacion>Murcia</poblacion>
<telefono>658784587</telefono>
<email>[email protected]</email>
</contacto>
</contactos>

Y este es el código en c#:

Código:
            XDocument contactos = XDocument.Load(Server.MapPath("agenda3.xml"));
            var contact = from contacto in contactos.Descendants("contacto")
                          //where contacto.Attribute("status") == null || contacto.Attribute("status").Value != "disabled"
                          select new
                          {
                              id = contacto.Element("id").Value,
                              idlang = contacto.Element("id" + contacto.Attribute("lang")).Value,
                              idversion = contacto.Element("id" + contacto.Attribute("version")).Value,
                          };

            foreach (var contacto in contact)
            {
                if (contacto.id == txtId.Text)
                {
                    txtId.Text = contacto.id;
                    txtConsultas.Text += contacto.idlang + " " + contacto.idversion + "\n";
                }
            }
Gracias un saludo!

Última edición por KatonSP; 07/05/2009 a las 04:56
  #2 (permalink)  
Antiguo 07/05/2009, 06:22
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: Mostrar atributos con linq to xml

Y eso que lenguaje es ? debes de preguntar en el foro que corresponda...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 07/05/2009, 07:00
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Mostrar atributos con linq to xml

Cita:
Iniciado por monoswim Ver Mensaje
Y eso que lenguaje es ? debes de preguntar en el foro que corresponda...

Saludos
Perdón, no sabia si preguntar en el de c# o en el de xml.

¿se va a mover el tema o lo creo en el otro foro?

Salu2
  #4 (permalink)  
Antiguo 08/05/2009, 06:59
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: Mostrar atributos con linq to xml

yo te lo muevo, pero hay un foro de c/c++ y otro de .net...de c# no hay...

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 15/05/2009, 00:44
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Mostrar atributos con linq to xml

Pues si pudieses moverlo al de .net, que es donde iria ¿no?

Ya lo solucione, este es el código que e utilizado por si alguien lo necesita:
Código:
            XDocument contactos = XDocument.Load(Server.MapPath("agenda3.xml"));
            var contact = from contacto in contactos.Descendants("contacto")
                          where contacto.Element("id").Value == "1"
                          select new
                          {
                              id = contacto.Element("id").Value,
                              nombre = contacto.Element("nombre").Value,
                              apellidos = contacto.Element("apellidos").Value,
                              poblacion = contacto.Element("poblacion").Value,
                              telefono = contacto.Element("telefono").Value,
                              email = contacto.Element("email").Value,
                              idlang = contacto.Element("id").Attribute("lang").Value,
                              idversion = contacto.Element("id").Attribute("version").Value,
                          };

            foreach (var contacto in contact)
            {
                if (contacto.id == iden)
                {
                    txtId.Text = contacto.id;
                    txtNombre.Text = contacto.nombre;
                    txtApellidos.Text = contacto.apellidos;
                    txtPoblacion.Text = contacto.poblacion;
                    txtTlfno.Text = contacto.telefono;
                    txtMail.Text = contacto.email;
                    txtLan.Text = contacto.idlang;
                    txtVersion.Text = contacto.idversion;
                }
            }
  #6 (permalink)  
Antiguo 15/05/2009, 06:26
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: Mostrar atributos con linq to xml

Movido y gracias por publicar la solución
__________________
Esteban Quintana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.