Compartir a través de


Función substring

Devuelve la cadena secundaria del primer argumento que comienza en el lugar especificado en el segundo argumento y la longitud especificada en el tercer argumento.

string substring(string, number, number?)

Comentarios

Se considera que cada carácter de la cadena tiene una posición numérica: la posición del primer carácter es 1, la posición del segundo carácter es 2, etcétera.

Si no se especifica el tercer argumento, devuelve la subcadena empezando por la posición especificada en el segundo argumento y continuando hasta el final de la cadena.

Si un argumento no es de tipo cadena, primero se convierte en una cadena mediante la función string() y, a continuación, se evalúa el resultado de dicha conversión.

Advertencia

Las conversiones de cadenas para conjuntos de nodos que se pasan a esta función como argumentos pueden arrojar resultados inesperados.Para obtener más información, vea Función string.

La función distingue mayúsculas de minúsculas.

Ejemplo

La siguiente llamada de función devuelve "234":

substring("12345",2,3)

La siguiente llamada de función devuelve "2345":

substring("12345",2)

La subcadena devuelta contiene aquellos caracteres en los que la posición del carácter es mayor o igual que el valor redondeado del segundo argumento y, si se especifica el tercer argumento, menor que la suma del valor redondeado del segundo argumento y el valor redondeado del tercer argumento.Las comparaciones y la suma utilizadas anteriormente siguen las reglas del estándar IEEE 754; el redondeo se realiza como si se llamara a la función round().

Los siguientes ejemplos ilustran casos inusuales.

substring("12345", 1.5, 2.6) devuelve "234"

substring("12345", 0, 3) devuelve "12"

substring("12345", 0 div 0, 3) devuelve ""

substring("12345", 1, 0 div 0) devuelve ""

substring("12345", -42, 1 div 0) devuelve "12345"

substring("12345", -1 div 0, 1 div 0) devuelve ""

En este ejemplo se muestran las expresiones substring() anteriores.

Archivo XML

Ninguno; el archivo XSLT se llama a sí mismo.

Archivo XSLT (substring.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
   substring("12345",2,3) = 
      <xsl:value-of select='substring("12345",2,3)'/><br/>
   substring("12345",2) = 
      <xsl:value-of select='substring("12345",2)'/><br/>
   substring("12345", 1.5, 2.6) = 
      <xsl:value-of select='substring("12345", 1.5, 2.6)'/><br/>
   substring("12345", 0, 3) = 
      <xsl:value-of select='substring("12345", 0, 3)'/><br/>
   substring("12345", 0 div 0, 3) = 
      <xsl:value-of select='substring("12345", 0 div 0, 3)'/><br/>
   substring("12345", 1, 0 div 0) = 
      <xsl:value-of select='substring("12345", 1, 0 div 0)'/><br/>
   substring("12345", -42, 1 div 0) = 
      <xsl:value-of select='substring("12345", -42, 1 div 0)'/><br/>
   substring("12345", -1 div 0, 1 div 0) = 
      <xsl:value-of select='substring("12345", -1 div 0, 1 div 0)'/>
</xsl:template>

</xsl:stylesheet>

Resultado con formato

substring("12345",2,3) = 234 substring("12345",2) = 2345 substring("12345", 1.5, 2.6) = 234 substring("12345", 0, 3) = 12 substring("12345", 0 div 0, 3) = substring("12345", 1, 0 div 0) = substring("12345", -42, 1 div 0) = 12345 substring("12345", -1 div 0, 1 div 0) =

Resultado del procesador

<?xml version="1.0" ?> substring("12345",2,3) = 234<br /> substring("12345",2) = 2345<br /> substring("12345", 1.5, 2.6) = 234<br /> substring("12345", 0, 3) = 12<br /> substring("12345", 0 div 0, 3) = <br /> substring("12345", 1, 0 div 0) = <br /> substring("12345", -42, 1 div 0) = 12345<br /> substring("12345", -1 div 0, 1 div 0) =

Vea también

Referencia

Referencia de tipos de datos XML