Hola, estoy recorriendo un fichero XML con
Microsoft.XMLDOM, y quiero saber si es posible tener subnodos que se llamen igual que los padres y poder recorrerlas jerárquicamente, a ver si me puedo explicar:
Tengo un XML que define menus con entradas y submenus:
Código:
<entradas>
<entrada tipo="enlace">
<texto>Entrada 1</texto>
</entrada>
<entrada tipo="submenu">
<texto>Entrada 2</texto>
<entrada tipo="enlace">
<texto>Entrada 2.1</texto>
</entrada>
<entrada tipo="enlace">
<texto>Entrada 2.2</texto>
</entrada>
</entrada>
<entrada tipo="enlace">
<texto>Entrada 3</texto>
</entrada>
</entradas>
Entonces, cuando llego a la entrada de tipo="submenu", se que puedo recorrer los hijos de forma recursiva con el nodo "Entrada 2", pero lo que no se como hacer es luego seguir con "Entrada 3"... Intento hacer
nextSibling para el padre (puesto en rojo en el código de abajo), pero me dice que
el objeto no acepta esa propiedad o método, entonces ¿como paso al hermano saltando los hijos??
Mi estructura de programa (resumida) es la siguiente:
Código:
Function EscribeUnaEntradaDeXML(UnaEntrada, nivel)
esSubmenu = false
%>
<li>texto de la entrada
<%
If tipo = "submenu"
esSubmenu = true
okey = EscribeEntradasDeXML(nodoEntrada, nivel+1)
End If
%>
</li>
<%
EscribeUnaEntradaDeXML = esSubmenu
End Function
Sub EscribeEntradasDeXML(nodoEntradas, nivel)
For each UnaEntrada in nodoEntradas.getElementsByTagName("entrada")
If EscribeUnaEntradaDeXML(UnaEntrada, nivel) Then
SI TRUE SIGNIFICA QUE LO ANTERIOR ERA SUBMENU,
QUIERO SALTAR AL SIGUIENTE HERMANO SIN PASAR POR LOS HIJOS
UnaEntrada = UnaEntrada.nextSibling
End If
Next
End Sub
Y la llamada incial es:
Call EscribeEntradasDeXML(objXMLInicial, 0)
Espero que podáis ayudarme, soy novato en XML. Por cierto, estoy usando esta definición de objetos para
Microsoft.XMLDOM:
http://www.devguru.com/technologies/..._document.html http://www.devguru.com/technologies/.../obj_node.html
Gracias