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

nodos de xml

Estas en el tema de nodos de xml en el foro de .NET en Foros del Web. Como puedo determinar cuantos nodos secundarios tiene un nodo principal en un archivo xml?...
  #1 (permalink)  
Antiguo 05/12/2006, 14:30
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Pregunta nodos de xml

Como puedo determinar cuantos nodos secundarios tiene un nodo principal en un archivo xml?
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #2 (permalink)  
Antiguo 05/12/2006, 16:44
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
ya quedo, les explico, tienen un XML de esta forma, bueno es el que yo utilizo:

<?xml version="1.0" encoding="utf-8"?>
<folio>
<mascara>@@##</mascara>
<Folioaux>AA00</Folioaux>
<disponibilidad>0</disponibilidad>
<tipo>3</tipo>
</folio>


quiero obtener solo los datos de los subnodos internos, es decir, (mascara,folioaux, disponibilidad y topo), bueno tengo este codigito, espero les funcione a los que lo necesiten, o si tienen una mejor forma pues adelante:

XmlDocument documento = new XmlDocument();
documento.Load("mi_archivo");
XmlNodeList listaNodos = documento.GetElementsByTagName("el tag que buscan, en mi caso "folio"");
if (listaNodos[0].HasChildNodes)//si tiene nodos
{
for (int x = 0; x <= listaNodos[0].ChildNodes.Count-1; x++)
{//me muestra los datos en un listbox

listBox1.Items.Add(listaNodos[0].ChildNodes[x].InnerText);

}
}//y ya
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #3 (permalink)  
Antiguo 05/12/2006, 16:52
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
tengo otra bronca, haber si esta si me pueden responder, cuando despliego la informacion necesito saber el puro nombre de la cabecera, ya que si ocupo .OuterXml me manda todo el registro y con todo y la informacion, alguien sabe que le tengo que hacer para que me de el nombre de la cabecera?
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #4 (permalink)  
Antiguo 05/12/2006, 17:02
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
algo tan sencillo y yo pidiendo ayuda, con la propiedad .name del nodo:

listaNodos[0].ChildNodes[x].Name;
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 07/12/2006, 10:51
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 8 meses
Puntos: 1
Re: nodos de xml

Yo hubiese hecho un foreach en vez de un for
En vez de:
Código:
for (int x = 0; x <= listaNodos[0].ChildNodes.Count-1; x++)
Hubiese utilizado:
Código:
foreach (XmlNode nodoHijo in listaNodos.ChildNodes)
__________________
saludos
seba
http://sgomez.blogspot.com
  #6 (permalink)  
Antiguo 07/12/2006, 12:09
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: nodos de xml

en mi caso uso el for por que con ello tengo que ir declarando y creando controles en tiempo de ejecucion, es por eso que no utilice el foreach ya que tenia que declarar la variable "x" antes de todo, aun que en casi toda la aplicacion utilizo el foreach para obtener campos y todo el show, de todas formas gracias por el comentario todo es bien recibido, y, ya que estamos en esto, tengo otra duda:

suponiendo que tienes un xml de la siguiente estructura:

Código:

<obj1>
<obj2>
<obj2.1 /> <obj2.2 />
<obj2>
<obj1>
yo necesito obtener los datos del nodo <obj2> osea el obj2.1, obj2.2, etc. El problema esta en que cuando leo el .xml la primer etiqueta seria la <obj1>, y por lo tanto me mandaria como resultado el nodo siguiente y no los que necesito, la pregunta es: ¿Como le doy la profundidad a mi aplicacion para que me detecte o seleccione los nodos mas internos de un sector, en caso de que, si el archivo XML sea de un nivel "n" por sector?

PD. en este caso utilizo: obj.DocumentElement.ChildNodes[0].ChildNodes[0].....

Nos vermox
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.

Última edición por erick_arcini; 07/12/2006 a las 12:18
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 22:25.