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

validar nodo xml en foreach

Estas en el tema de validar nodo xml en foreach en el foro de .NET en Foros del Web. Necesito saber como valido un nodo xml, saber si esta repetido e ignorarlo. Estoy leyendo un xml con c# pero necesito saber al momento de ...
  #1 (permalink)  
Antiguo 29/08/2012, 15:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años, 7 meses
Puntos: 3
Pregunta validar nodo xml en foreach

Necesito saber como valido un nodo xml, saber si esta repetido e ignorarlo. Estoy leyendo un xml con c# pero necesito saber al momento de estar leyendo los nodos si un nodo ya esta repetido

por ejemplo:

<device>
<ipaddress>192.168.0.12</ipadress>
</device>
<device>
<ipaddress>192.168.0.12</ipadress>
</device>

En el anterior ejemplo quiero que solo se lea un device con la ipadress 192.168.0.12 y el repetido lo ignore.

Gracias
  #2 (permalink)  
Antiguo 29/08/2012, 17:30
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: validar nodo xml en foreach

Puedes usar Linq to XML para agrupar los nodos y tomar solo el primero.

Lo que si debes tener es un elemento que sea único como, por ejemplo, <root> en el xml para que pueda usarse.

Código C#:
Ver original
  1. XElement devices = new XElement("root",
  2.                                       new XElement("device",
  3.                                           new XElement("ipaddress","192.168.0.12"),
  4.                                           new XElement("ipaddress","192.168.0.12")));
  5.  
  6. //Obtienes una lista de los devices sin ningún nodo repetido
  7.               var deviceGroup = (from d in devices.Elements("device")
  8.                                  group d by d.Element("ipaddress").Value into g
  9.                                  select new
  10.                                  {
  11.                                      device = g.First()
  12.                                  }).toList();

Un saludo y espero que te sirva
  #3 (permalink)  
Antiguo 29/08/2012, 17:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años, 7 meses
Puntos: 3
Exclamación Respuesta: validar nodo xml en foreach

Lo que sucede es que yo leo los xml desde un archivo... y no se cuantos elementos devices tenga.... la validacion no se puede hacer desde el for each?

de todas maneras por cada paso del ciclo for each yo creo un objeto tipo Device... pero ese objeto se sobreescribe... lo unico que creo poder hacer es guardar en un array global los devices y despues comparar su atributo...otra idea?
  #4 (permalink)  
Antiguo 29/08/2012, 18:18
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Linq to XML puede usarse también para tratar un fichero, sólo tienes que cargarlo en memoria.
Pon el código que tienes ahora, para ver que está haciendo

Etiquetas: c#, foreach, xmlarchivo, xmldocument
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 06:12.