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

les cuento por que quiero validar un XML

Estas en el tema de les cuento por que quiero validar un XML en el foro de .NET en Foros del Web. Hola! Hasta ahorita sigo igual, con la misma pregunta anterior: ¿Cómo puedo validar un XML? Resulta que tengo un XML que tiene la siguiente estructura: ...
  #1 (permalink)  
Antiguo 23/10/2006, 14:17
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
les cuento por que quiero validar un XML

Hola!

Hasta ahorita sigo igual, con la misma pregunta anterior: ¿Cómo puedo validar un XML?

Resulta que tengo un XML que tiene la siguiente estructura:

<noticias>
<noticia>
<id>
<titulo>
<texto>
<textoid></textoid>
</texto>
<foto>
<fotoid></fotoid>
</foto>
</noticia>
</noticias>

lo que quiero hacer es validar que no falte ningun nodo hijo en cada nodo <noticia> porque a partir de este XML necesito crear otro XML solo con aquellos nodos <noticia> que son validos, es decir... con aquellos nodos <noticia> a los que no les falta ningun nodo hijo.

Pero además necesito saber cual nodo <noticia> no es valido, para guardar el error en una BD y decir: el nodo <noticia> con index = x no es valido porque le falta x nodo.

No se si me expliqué???

Lo que yo hice es lo siguiente:

Cargo el XML:
Código:
string pathAG = "C:\\XML\\AG.xml";
XmlDocument xmlAG = new XmlDocument();
xmlAG.Load(pathAG);
Hago un GetElementsByTagName por cada nodo que necesito:
Código:
XmlNodeList xmlNoticia = xmlAG.GetElementsByTagName("noticia");
XmlNodeList xml_AG_noticiaid = xmlAG.GetElementsByTagName("id");
XmlNodeList xml_AG_titulo = xmlAG.GetElementsByTagName("titulo");
XmlNodeList xml_AG_textoid = xmlAG.GetElementsByTagName("textoid");
XmlNodeList xml_AG_fotoid = xmlAG.GetElementsByTagName("fotoid");

Hago un for para recorrer cada nodo <noticia>:
Código:
for(int i=0;i<xmlNoticia.Count;i++)
{
	string AG_NoticiaId = xml_AG_noticiaid[i].FirstChild.Value;
	string AG_titulo = xml_AG_titulo[i].FirstChild.Value;
	string AG_textoid = xml_AG_textoid[i].FirstChild.Value;
	string AG_fotoid = xml_AG_fotoid[i].FirstChild.Value;
}
Lo que pasa es que cuando no encuentra por ejemplo, el nodo textoid, me manda al catch y en el message: "Object reference not set to an instance of an object". Lo malo es que después se sale y ya no regresa a validar los demás nodos.

Por favor... si alguien me puede ayudar se los agradezco muchisimo!

Saludos
  #2 (permalink)  
Antiguo 23/10/2006, 15:14
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
ya tengo la respuesta y la comparto por si a alguien le puede servir:

En el for llamo una funcion que me regrese un string:
string statusNodoValido = NodoValido(i, xml_AG_noticiaid)


si el statusNodoValido es diferente a "" entonces llamo la misma funcion pero ahora con el nodo siguiente:
statusNodoValido = NodoValido(i, xml_AG_titulo)

la funcion es:
private static string NodoValido(int i, XmlNodeList oxmlNode)
{
try
{
string o_nodelist = oxmlNode[i].FirstChild.Value;

return o_nodelist;
}
catch(Exception ee)
{

return "";
}


Saludos!
  #3 (permalink)  
Antiguo 23/10/2006, 15:30
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Hey!!! bien!!! al fin ya tengo alguien con quien charlar sobre xml en .net

  #4 (permalink)  
Antiguo 24/10/2006, 08:54
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Cita:
Iniciado por Developer9 Ver Mensaje
Hey!!! bien!!! al fin ya tengo alguien con quien charlar sobre xml en .net

jajaja, que crunch se vio eso...

Por cierto.. tambien se sobre xml, xsl, xslt y xsd...
cuando gustes forear conmigo.. jaja
  #5 (permalink)  
Antiguo 24/10/2006, 09:28
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cita:
Iniciado por Stream Ver Mensaje
jajaja, que crunch se vio eso...

Por cierto.. tambien se sobre xml, xsl, xslt y xsd...
cuando gustes forear conmigo.. jaja
viiiiiiiiiiiiiiiiiiiiii por mi barrio eso se llama ofrecimiento

Ya

Bien!... entonces ahora ya somos 3
  #6 (permalink)  
Antiguo 26/10/2006, 10:53
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 3 meses
Puntos: 0
hola! aprovecho que estan en el tema para preguntar algo.
tengo un xml que en determinado nodo, "descripción", tiene texto y separadores de parrafo html ("<p>" y "</p>"), la pregunta es como hago para que al cargar el contenido del nodo con getnode, me tome tambien los tags html? probe poniendo CDATAs pero de igual forma no me los toma y no se que hacer!

cualquier ayuda se los agradecere!
por cierto, voy a abrir un post con esto mismo.
Gracias!
__________________
Diegote ::.

www.mmsolutions.com.ar
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 20:10.