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?)
Notas
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.
![]() |
---|
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)
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) =