Tengo un XML que define menus con entradas y submenus:
Código:
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??<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>
Mi estructura de programa (resumida) es la siguiente:
Código:
Espero que podáis ayudarme, soy novato en XML. Por cierto, estoy usando esta definición de objetos para Microsoft.XMLDOM: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)
http://www.devguru.com/technologies/..._document.html
http://www.devguru.com/technologies/.../obj_node.html
Gracias