Foros del Web » Programando para Internet » ASPX (.net) »

Modificar xml to linq con c#

Estas en el tema de Modificar xml to linq con c# en el foro de ASPX (.net) en Foros del Web. Hola estoy intentando modificar un archivo xml desde c# con linq, quiero que modifique todos los elementos email que no tengan datos para que añada ...
  #1 (permalink)  
Antiguo 08/05/2009, 04:31
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Solucionado:Modificar xml to linq con c#

Hola estoy intentando modificar un archivo xml desde c# con linq, quiero que modifique todos los elementos email que no tengan datos para que añada su nombre más "asd.com", este es el código:

Código:
            XDocument contactos = XDocument.Load(Server.MapPath("agenda3.xml"));
            var contact = from contacto in contactos.Descendants("contacto")
                          where contacto.Element("email").Value == ""
                          select new
                          {
                              id = contacto.Element("id").Value,
                              nombre = contacto.Element("nombre").Value,
                              email = contacto.Element("email").Value,
                          };

            foreach (var contacto in contact)
            {

                contacto.email = contacto.nombre + "asd.com";
                txtConsultas.Text += contacto.email + "\n";

            }
contactos.Save(Server.MapPath("agenda3.xml"));
Un saludo!

Última edición por KatonSP; 15/05/2009 a las 00:48
  #2 (permalink)  
Antiguo 15/05/2009, 00:49
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Modificar xml to linq con c#

Pues ya lo solucioné:

Código:
            XDocument contactos = XDocument.Load(Server.MapPath("agenda2.xml"));
            var elemento = from p in contactos.Descendants("contacto")
                           where p.Element("id").Value.CompareTo(txtId.Text) == 0
                           select p;

            elemento.ElementAt(0).ReplaceAll(
            new XElement("id", txtId.Text, new XAttribute("lang", txtLan.Text), new XAttribute("version", txtVersion.Text)),
            new XElement("nombre", txtNombre.Text),
            new XElement("apellidos", txtApellidos.Text),
            new XElement("poblacion", txtPoblacion.Text),
            new XElement("telefono", txtTlfno.Text),
            new XElement("email", txtMail.Text + "@asd.com")
            );

            contactos.Save(Server.MapPath("agenda2.xml"));
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 03:59.