Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/04/2004, 01:54
Avatar de Helbira
Helbira
 
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
No sé si entendí tu pregunta. Yo de flash cero, pero te paso un ejemplo sencillo que hice que te pasa la estructura árbol de un xml a listas html del tipo <ul><li></li></ul> por si lo puedes reutilizar para lo que quieres y es independiente de la profundidad de las etiquetas de tu xml y del largo.

arbol.xml

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml
-stylesheet type="text/xsl" href="arbol.xsl"?>
<menu>
   <arbol>
      <nodo nombre="Nodo1."/>
      <nodo nombre="Nodo2.">
         <nodo nombre="Nodo2.1.">
            <nodo nombre="Nodo2.1.1."/>
            <nodo nombre="Nodo2.1.2."/>
         </nodo>
         <nodo nombre="Nodo2.2.">
            <nodo nombre="Nodo2.2.1."/>
            <nodo nombre="Nodo2.2.3.">
               <nodo nombre="Nodo2.2.3.1."/>
            </nodo>
         </nodo>
      </nodo>
      <nodo nombre="Nodo3">
         <nodo nombre="Nodo3.1.">
            <nodo nombre="Nodo3.1.1."/>
            <nodo nombre="Nodo3.1.2."/>
         </nodo>
         <nodo nombre="Nodo3.2.">
            <nodo nombre="Nodo3.2.1."/>
            <nodo nombre="Nodo3.2.3.">
               <nodo nombre="Nodo3.2.3.1.">
                  <nodo nombre="Nodo3.2.3.1."/>
                  <nodo nombre="Nodo3.2.3.2."/>
                  <nodo nombre="Nodo3.2.3.3."/>
               </nodo>
            </nodo>
         </nodo>
      </nodo>
      <nodo nombre="Nodo4"/>
      <nodo nombre="Nodo5"/>
      <nodo nombre="Nodo6"/>
      <nodo nombre="Nodo7"/>
   </arbol>
</menu>
arbol.xsl

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">

   <xsl:template match="menu">
   <!-- Creamos las etiquetas <ul> de una lista HTML -->
      <ul>
         <xsl:apply-templates select="arbol"/>
      </ul>
   </xsl:template>
   
   <xsl:template match="arbol">
      <xsl:apply-templates select="nodo"/>
   </xsl:template>
   
   <xsl:template match="nodo">
   <!-- Creamos las etiquetas <li> de un item de una lista HTML -->
      <li>

         <!-- IMPRIMIMOS EL NOMBRE DEL NODO -->
         <xsl:call-template name="printnodo">
            <xsl:with-param name="nombre">
               <xsl:value-of select="@nombre"/>
            </xsl:with-param>
         </xsl:call-template>

         <!-- COMPROBAMOS SI TIENE HIJOS EL NODO-->
         <xsl:call-template name="checkchild"/>
      </li>
   </xsl:template>
   
   <xsl:template name="printnodo">
      <xsl:param name="nombre"/>
      <xsl:value-of select="$nombre"/>
   </xsl:template>
   
   <xsl:template name="checkchild">
      <xsl:choose>
         <xsl:when test="count(child::nodo)&gt;0">
            <xsl:for-each select="nodo">
            <!-- si no queremos ordenarlo por nombre del nodo, comentamos esta línea sort -->
               <xsl:sort select="@nombre"/>
               <xsl:call-template name="loadchild"/>
            </xsl:for-each>
         </xsl:when>
         <xsl:otherwise>
        </xsl:otherwise>
      </xsl:choose>
   </xsl:template>
   
   <xsl:template name="loadchild">
   <!-- recorremos los hijos de un nodo -->
      <ul>
         <xsl:apply-templates select="."/>
      </ul>
   </xsl:template>
   
</xsl:stylesheet>

El archivo arbol.xml es el tu XML propiamente dicho y el archivo arbol.xsl es el que lo recorrerá y lo transformará a HTML.

Suerte