xml y xsl, sin lenguaje servidor

Preguntado hace 1 año

Fernandoflorido
Votos
PositivosNegativosTotal
2 0 2
55 Visualizaciones
Compártelo: Compártelo en twitterCompártelo en Facebook

Es la misma pregunta que en el otro hilo, pero esta vez sin usar ningun lenguaje de servidor. Escuche en algun sitio que era posible mediante un fichero (xml, xsl) que servia de selector

la pregunta era:

Tengo un fichero 1.xsl que da formato a un fichero 1.xml Tengo otro fichero 2.xsl que da formato a otro fichero 2.xml

La pregunta es: si quiero que todos los datos xml esten en un fichero comun 1y2.xml, cuando el usuario elija la opcion 1 o la 2, como hago para presentarla de la manera 1.xsl o de la manera 2.xsl

Problema: Que los ficheros xml en general, ya tienen vinculados un .xsl concreto en la cabecera, en el ejemplo puesto bien el 1.xsl o bien el 2.xsl

Actualizando datos

1 Respuesta

Hace 1 año

Guillermo Barrios
Votos
PositivosNegativosTotal
202

Lo tengo!!!!!!!

Debo reconocer que me he vuelto un poco loco buscando la solución.

Necesitas 2 xml de entrada, en los que haces la llamada uno a 1.xsl y otro a 2.xsl. Y en ambos incluyes el fichero xml que realmente contiene los datos.

Me he hecho un ejemplito.

tiendaPrincipal.xml Xml con formato A y llamada a los datos

<?xml version="1.0" encoding='ISO-8859-1'?>

<!DOCTYPE page [<!ENTITY datos SYSTEM "tienda.xml">]>

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

<principal>
&datos;
</principal>

tiendaPrincipal1.xml Xml con formato B y llamada a los datos

<?xml version="1.0" encoding='ISO-8859-1'?>

<!DOCTYPE page [<!ENTITY datos SYSTEM "tienda.xml">]>

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

<principal>
&datos;
</principal>

tienda0.xsl Formato A

<?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><title>Generado con tienda-html.xsl</title></head>
      <body>
         <h1> <xsl:apply-templates /> </h1>
      </body>
   </html>
</xsl:template>
 </xsl:stylesheet>

tienda1.xsl Formato B

<?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><title>Generado con tienda-html.xsl</title></head>
      <body>
         <p> <xsl:apply-templates /> </p>
      </body>
   </html>
</xsl:template>
</xsl:stylesheet>

tienda.xml El que contiene los datos realmente

<?xml version="1.0" encoding='ISO-8859-1'?>

<tienda>
   <nombre>La tiendecilla  </nombre>
   <telefono>953 87 12 23  </telefono>
</tienda>

El ejemplo base lo he sacado de aquí

Cerrar

No sabia que se podia incluir un xml dentro de otro asi. Esto es lo que buscaba, muchas gracias Guille Fernandoflorido hace 1 año

Tu respuesta

Confirmación

Cerrar

Si sales ahora, perderás los cambios. ¿Estás seguro de querer salir?

Para participar en Babelias, debes estar convenientemente validado. Si ya eres usuario inicia sesión, si no lo eres, te puedes registrar.

Dar una respuesta

Trata de ser descriptivo, usa al menos 25 caracteres