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

Ayuda con menu xml

Estas en el tema de Ayuda con menu xml en el foro de Programación General en Foros del Web. Buenas, me he descargado una practica que funciona de maravilla, en flash y xml. la cosa es que tengo el menu xml, pero solo me ...
  #1 (permalink)  
Antiguo 23/05/2005, 04:20
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Ayuda con menu xml

Buenas, me he descargado una practica que funciona de maravilla, en flash y xml. la cosa es que tengo el menu xml, pero solo me hace una subdivision, y me haria falta otra. os pongo el ejemplo:

<?xml version="1.0" encoding="UTF-16"?>
<SEPHIROTH MAINCOLOR='003399' MAINOVER='FF9900' SUBCOLOR='666666' SUBOVER='000000' LINECOLOR='DFDFDF' LINEWIDTH='150'

FONTSIZE='12' VELOCITY='5.45' INDENT='15' HSPACE='5' TICKOFFSET='0'>
<PARENT FNC="my_function" ARG="argument" TARGET="_root">
<TEXT>MM Tree Menu</TEXT>

<SUB FNC="Ferran" TARGET="_root" ARG="test for special chars">
<TEXT>This item will call</TEXT>
<TEXT>a flash custom function</TEXT>
</SUB>
<SUB URL="http://hola=80" TARGET="_blank">
<TEXT>Support Page</TEXT>
<TEXT>now multiple lines</TEXT>
<TEXT>supported</TEXT>
</SUB>

<SUB URL="http://www.hola" TARGET="_blank">
<TEXT>My Download section</TEXT>
</SUB>
</PARENT>

esto me crea una opcion, y tres dentro. podria desmembrar una opcion dentro de una de estas?

salu2
  #2 (permalink)  
Antiguo 24/05/2005, 02:53
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Buenas, he encontrado un menu que se adapta a mis necesidades. tengo loo siguiente:

<node label="» Productos" value="1">
<node label="» 1">
<1.1" />
<1.2" />
<1.3" />
<1.4" />
<node label="»Digital Media Minute" value="2" />
<node label="2" />
<node label="2.1" />
</node>
</node>

mi pregunta es, como se haria en xml para crear como un vinculo? es decir, que al clickar en 1.1 me vaya a una pagina, con un target...

gracias!!!
  #3 (permalink)  
Antiguo 24/05/2005, 06:10
Avatar de Harijan  
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
Menú xml

Prueba con esto a ver si es lo que quieres. Crea estos 4 archivos (con WordPad si no tienes otro editor) y después ejecuta Catalogo.xml.
(Pagina_1.htm y Pagina_2.htm son solo para probar).

Un saludo

Catalogo.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Catalogo.xsl"?>
<Catalogo>
<Productos label="»Productos" value="1">
<Producto value="1.1"/>
<Producto value="1.2"/>
<Producto value="1.3"/>
<Producto value="1.4"/>
</Productos>
<Otros label="»Digital Media Minute" value="2">
<Otro value="2.1"/>
</Otros>
</Catalogo>

Catalogo.xls

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head />
<body>
<xsl:for-each select="Catalogo">
<xsl:for-each select="Productos">
<xsl:for-each select="@label">
<pre>
<xsl:value-of select="." />
</pre>
</xsl:for-each>
</xsl:for-each>
<br />
<xsl:for-each select="Productos">
<xsl:for-each select="Producto">
<xsl:for-each select="@value">
<pre>
<a>
<xsl:attribute name="href"><xsl:text disable-output-escaping="yes">pagina_1.htm#</xsl:text><xsl:value-of select="." /></xsl:attribute>
<xsl:value-of select="." />
</a>
</pre>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<br />
<xsl:for-each select="Otros">
<xsl:for-each select="@label">
<pre>
<xsl:value-of select="." />
</pre>
</xsl:for-each>
</xsl:for-each>
<xsl:for-each select="Otros">
<xsl:for-each select="Otro">
<xsl:for-each select="@value">
<pre>
<a>
<xsl:attribute name="href"><xsl:text disable-output-escaping="yes">pagina_2.htm#</xsl:text><xsl:value-of select="." /></xsl:attribute>
<xsl:value-of select="." />
</a>
</pre>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Pagina_1.htm

<html>
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Marcador 1</title>
</head>
<body>
<p><a name="1.1"></a>&nbsp; Marcador 1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a name="1.2"></a> Marcador 2</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a name="1.3"></a> Marcador 3</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a name="1.4"></a> Marcador 4</p>
<p>&nbsp;</p>
</body>
</html>

Pagina_2.htm

<html>
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Marcador 1</title>
</head>
<body>
<p><a name="2.1"></a>&nbsp; Marcador 1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>

Última edición por Harijan; 24/05/2005 a las 07:49
  #4 (permalink)  
Antiguo 24/05/2005, 14:35
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Hola Harijan, y gracias por responder.

no he entendido nada de lo que me has puesto. he creado lo que me dices y me he quedado igual..

puedes explicarme un poco mejor?

salu2
  #5 (permalink)  
Antiguo 25/05/2005, 09:10
Avatar de Harijan  
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
Menu en XML

Hola Ferran, siento no haberme explicado bien, pero la verdad es que esto es un poco lioso.

Puesto que decías que el menú te servía, lo que yo trataba es de que vieras como se hace un enlace.

Vamos a intentarlo con un ejemplo más sencillo. Para ello usaremos el siguiente archivo:

Menú.xml


<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Menu.xsl"?>
<Menu label="MENU DE OPCIONES">
<Item label="1. Opcion 1" value="pagina_1.htm#1.1"/>
<Item label="2. Opcion 2" value="pagina_1.htm#1.2"/>
<Item label="3. Opcion 3" value="pagina_1.htm#1.3"/>
<Item label="4. Opcion 4" value="pagina_1.htm#1.4"/>
<Item label="5. Opcion 5" value="pagina_2.htm#2.1"/>
</Menu>


Como puedes ver, es una tabla con 5 'filas', llamadas Item, cada una de ellas con dos atributos: label que es lo que queremos que se vea en el menu y value que es la página donde queremos saltar. Seguiremos utilizando los archivos pagina_1.htm y pagina_2.htm, de forma que las opciones 1 a 4 nos llevarán a pagina_1.htm, y dentro de ella a sus respectivos marcadores. La opción 5 nos llevará a pagina_2.htm, al único marcador que hay (podríamos no haberlo puesto).
Para poder ver este archivo en el navegador, debemos indicarle a éste de qué forma debe tratarlo. Para ello usamos una hoja de estilos (.xsl). Fíjate en la segunda línea del fichero:

<?xml-stylesheet type="text/xsl" href="Menu.xsl"?>

Le indica al navegador que utilice la hoja de estilo (stylesheet), de tipo "text/xsl" y que se llama "Menu.xsl". Por tanto, antes de ejecutar el fichero deberemos crear la hoja de estilo.

Menu.xsl


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head/>
<body>
<xsl:for-each select="Menu">
<xsl:for-each select="@label">
<xsl:value-of select="."/>
</xsl:for-each>
<br/>
<br/>
<xsl:for-each select="Item">
<xsl:for-each select="@label">
<pre>
<a>
<xsl:attribute name="href"><xsl:value-of select=../@value/></xsl:attribute>
<xsl:value-of select="."/>
</a>
</pre>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Las dos primeras líneas del fichero son la cabecera. La tercera línea busca la raíz del árbol '/', a partir de ahí aparecen una serie de instrucciones xsl:for-each (para cada...) que van recorriendo el árbol de arriba hacia abajo.

Para cada entrada 'Menu' selecciona su etiqueta y la muestra tal cual (solo hay una). A continuación desciende un nivel y para cada 'Item' selecciona su etiqueta, la muestra, y crea un enlace al valor (value) que le hemos asignado a la misma. Es el fragmento de código que va entre <a> y </a>.

Una vez creados y mostrados los enlaces, el resto de las instrucciones son para cerrar los bucles y las secciones.

Bien, una vez que tengamos los dos archivos creados sólo hay que abrir el archivo menu.xml con el navegador y comprobar el resultado.

En el primer mensaje decías que necesitabas varias subdivisiones y aquí solo hay una. La forma de crearlas es básicamente la misma, pero con algunos bucles for-each más. En el fichero catalogo.xsl tienes un ejemplo.

Espero haberme explicado mejor, no obstante si necesitas alguna aclaración no dudes en pedirla.

Un saludo.
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 23:27.