XSL - duda xslt

 
Vista:

duda xslt

Publicado por Paco (1 intervención) el 18/06/2008 16:14:57
Hola

Estoy un poco espeso con una cosa de xslt.

Quiero convertir este xml

<contenido>
texto bla......
<referencia>
<con>1</con>
</referencia>
texto2 bla.....
</contenido>

en un texto html como

<p>
texto bla......
<span>1</span>
texto2 bla.....
</p>

La parte dificil para mi es la del span.

¿Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Convertir XML a HTML con estructura personalizada

Publicado por Alejandro (227 intervenciones) el 06/07/2023 20:10:49
Puedes lograr la estructura HTML deseada utilizando plantillas en XSLT. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<xsl:template match="contenido">
  <p>
    <xsl:apply-templates />
  </p>
</xsl:template>
 
<xsl:template match="referencia">
  <span>
    <xsl:apply-templates />
  </span>
</xsl:template>
 
<xsl:template match="con">
  <xsl:value-of select="." />
</xsl:template>
 
<xsl:template match="text()">
  <xsl:value-of select="." />
</xsl:template>

En este ejemplo, hemos creado plantillas para los elementos `contenido`, `referencia`, `con` y también para los nodos de texto. La plantilla `contenido` envuelve el contenido del elemento `contenido` en una etiqueta `p`. La plantilla `referencia` envuelve el contenido del elemento `referencia` en una etiqueta `span`. La plantilla `con` simplemente imprime el valor del elemento `con`. La plantilla para los nodos de texto simplemente los imprime tal como están.

Con estas plantillas, cuando apliques las transformaciones en tu hoja de estilo XSLT, el XML de entrada será transformado en el HTML deseado:

1
2
3
4
5
6
7
8
9
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
  <!-- Plantillas aquí -->
 
  <xsl:template match="/">
    <xsl:apply-templates select="contenido" />
  </xsl:template>
 
</xsl:stylesheet>

Al aplicar estas transformaciones, obtendrás el siguiente resultado:

1
2
3
4
5
<p>
texto bla......
<span>1</span>
texto2 bla.....
</p>

Espero que esta solución te sea útil. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar