XSL - Sustituir un caracter por dos xslt

 
Vista:

Sustituir un caracter por dos xslt

Publicado por javier (1 intervención) el 17/10/2007 13:40:07
Me gustaria sababer como sustituir el caracter ' por /', ya que a través de la función translate no se puede.
Si alguien sabe si se puede hacer y como, se lo agradeceria
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

Sustituir el carácter ' por /' en XSLT

Publicado por Alejandro (227 intervenciones) el 06/07/2023 17:24:08
Si deseas sustituir el carácter `'` por `/'` en una cadena utilizando XSLT, puedes utilizar la función `replace()` disponible en XSLT 2.0 y versiones posteriores. Sin embargo, si estás utilizando XSLT 1.0, que no admite la función `replace()`, puedes utilizar una combinación de funciones y expresiones XPath para lograrlo.

Aquí tienes una solución utilizando XSLT 1.0:

1
2
3
4
5
6
7
8
9
<xsl:template match="node()">
  <xsl:copy>
    <xsl:apply-templates select="node() | @*" />
  </xsl:copy>
</xsl:template>
 
<xsl:template match="text()">
  <xsl:value-of select="translate(., '&apos;', '/&apos;')" />
</xsl:template>

En este ejemplo, estamos creando una plantilla que coincide con todos los nodos (`<xsl:template match="node()">`). Luego, dentro de la plantilla, utilizamos otra plantilla (`<xsl:template match="text()">`) que coincide con los nodos de texto.

Dentro de la plantilla `match="text()"`, utilizamos la función `translate()` para reemplazar el carácter `'` por `/'`. La función `translate()` toma tres argumentos: la cadena a modificar, los caracteres que se deben reemplazar y los caracteres de reemplazo. En este caso, estamos reemplazando el carácter `'` por `/'`.

Al utilizar esta solución en tu transformación XSLT, podrás sustituir el carácter `'` por `/'` en todas las cadenas de texto.

Recuerda que esta solución es específica para XSLT 1.0. Si estás utilizando XSLT 2.0 o versiones posteriores, puedes utilizar la función `replace()` para lograr el mismo resultado de una manera más sencilla.

Espero que esto te sea útil.
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