XSL - funcion para cortar cadena

 
Vista:

funcion para cortar cadena

Publicado por ANTONIO (1 intervención) el 12/05/2006 13:20:56
Hola, tengo una que cortar el contenido de una etiqueta definido como string en el esquema y necesitaría conocer la función que me cortaría ese string por el caracter que yo quisiera.

También necesitaría conocer como aplicar un "template" a los elementos que estan definidos como un tipo de datos en el esquema. Por ejemplo tengo un xml con unas etiquetas definidas en el esquema como entero largo, como podría hacer un template para que afectara solo a las etiquetas que están definidas como entero largo.

Gracias.

Salud y saludos.
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

Cortar una cadena y aplicar un "template" condicional en XSLT

Publicado por Alejandro (227 intervenciones) el 05/07/2023 21:50:38
1. Para cortar una cadena en XSLT por un caracter específico, puedes utilizar la función `substring-before()` o `substring-after()`. Aquí tienes un ejemplo de cómo usar `substring-before()` para obtener la parte antes del carácter deseado:

1
2
<xsl:variable name="cadena" select="'Texto de ejemplo - Datos adicionales'" />
<xsl:value-of select="substring-before($cadena, ' - ')" />

En este ejemplo, la variable `$cadena` contiene el texto de ejemplo. Utilizamos `substring-before()` con el argumento de cadena y el carácter " - " para obtener la parte antes de ese carácter.

Puedes ajustar el valor de `$cadena` y el carácter delimitador según tus necesidades.

2. Para aplicar un "template" condicionalmente a elementos que están definidos como un tipo de datos específico en el esquema, puedes utilizar los predicados en XSLT. Aquí tienes un ejemplo de cómo hacerlo para elementos que están definidos como enteros largos:

1
2
3
4
5
6
7
<xsl:template match="/">
  <xsl:apply-templates select="//elemento[@tipo='entero-largo']" />
</xsl:template>
 
<xsl:template match="elemento[@tipo='entero-largo']">
  <!-- Código para el "template" que se aplica a elementos enteros largos -->
</xsl:template>

En este ejemplo, el primer "template" hace un `apply-templates` a todos los elementos `elemento` que tienen el atributo `tipo` con valor "entero-largo". Luego, el segundo "template" se aplica a esos elementos específicos y puedes agregar el código que deseas ejecutar para esos elementos.

Recuerda ajustar los selectores y los valores de atributos según la estructura y los datos reales de tu XML y esquema.

Espero que esta solución te ayude a cortar cadenas y aplicar "templates" condicionales en XSLT. ¡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