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

ayuda a un novato en XML

Estas en el tema de ayuda a un novato en XML en el foro de Programación General en Foros del Web. hola foro!!! es la primera vez que me paso por el foro de XML y es que.... necesito vuestra ayuda!!!! tengo que hacer una aplicación ...
  #1 (permalink)  
Antiguo 27/04/2004, 03:20
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 21 años, 1 mes
Puntos: 2
ayuda a un novato en XML

hola foro!!!

es la primera vez que me paso por el foro de XML y es que.... necesito vuestra ayuda!!!!

tengo que hacer una aplicación en flash o director MX2004 que me muestre una estructura de árbol, esta estructura es de dimensiones desproporcionada y necesito realizarla dinámicamente de alguna manera... he tardado un día en programar un capítulo.. y son 36 !!!!!

muuuuuuuchas gracias!!!!! y a ver si me podéis echar un cable!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 28/04/2004, 03:54
Avatar de mico  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 47
Antigüedad: 21 años, 1 mes
Puntos: 0
RE:

No se como se usa flash, y mxdirector ni lo que lleva por debajo. Lo que si se es que si usas XML con DTD's en vez de XML Schema, Internet explorer cimplemente abriendo el archivo te creo un árbol automáticamente.

SALUDOS FOREROS
__________________
Saludos.
  #3 (permalink)  
Antiguo 28/04/2004, 05:51
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 21 años, 1 mes
Puntos: 2
y cómo se usa XML con DTD??? yo tampoco tengo idea de eso

gracias :D
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #4 (permalink)  
Antiguo 28/04/2004, 12:42
Avatar de mico  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 47
Antigüedad: 21 años, 1 mes
Puntos: 0
XML se puede usar de dos formas:

El XML digamos más antiguo se usa con DTD.

El XML actual se llama XML Schema.

Se puede usar el explorador para verlo, ya esta implementado en el mismo.

Un XML con DTD significa que en el archivo .xml, vas a tener los datos en si, por ejemplo si se trata de usarlo para una biblioteca de libros en el archivo xml tendrás el registro de un libro con sus datos, como titulo, autor, sinopsis etc. El archivo .dtd lo que hace es decir de que tipo son esos datos, por ejemplo puedes especificar que nombre es una cadena de caracteres. Entonces lo que se hace para ver si ese .xml, en nuestro caso el registro de un libro, está bien formado se usa el dtd, y así se ve si los tipos de datos son correctos, a esto se le llama validar un xml, para ello existen diversas librerias.

Sin embargo en el segundo caso, es decir, en el XML Schema, los tipos de datos se pueden especificar directamente en un único fichero, y es más flexible.

Esa es la idea general, aunque claro está, XML es bastante más complejo que eso.

Busca información sobre SAX, DOM, JDOM etc. que son librerias Java que dedicadas a PARSEAR XML.

SALUDOS FOREROS.
__________________
Saludos.
  #5 (permalink)  
Antiguo 29/04/2004, 01:29
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 21 años, 1 mes
Puntos: 2
gracias!!! a ver cómo salgo de esta ;)
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 29/04/2004, 01:54
Avatar de 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
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:08.