Fonction substring
Retourne la sous-chaîne du premier argument commençant à la position spécifiée dans le deuxième argument et de la longueur spécifiée dans le troisième argument.
string substring(string, number, number?)
Notes
Chaque caractère de la chaîne est considéré comme ayant une position numérique : la position du premier caractère est 1, la position du deuxième est 2, etc.
Si le troisième argument n'est pas spécifié, la fonction retourne la sous-chaîne commençant à la position spécifiée dans le deuxième argument et continuant jusqu'à la fin de la chaîne.
Si un argument n'est pas du type chaîne, il est tout d'abord converti en chaîne à l'aide de la fonction string(), puis le résultat de cette conversion est évalué.
Attention : |
---|
Les conversions de chaînes des collections de nœuds transmises en tant qu'arguments à cette fonction peuvent donner des résultats inattendus.Pour plus d'informations, voir Fonction string. |
Cette fonction respecte la casse.
Exemple
L'appel de fonction suivant retourne « 234 » :
substring("12345",2,3)
L'appel de fonction suivant retourne « 2345 » :
substring("12345",2)
La sous-chaîne retournée contient les caractères dont la position est supérieure ou égale à la valeur arrondie du deuxième argument et, si le troisième argument est spécifié, inférieure à la somme des valeurs arrondies du deuxième et du troisième argument. Les comparaisons et additions utilisées dans l'exemple précédent respectent les règles IEEE 754 standard ; l'arrondissement est effectué comme lors d'un appel à la fonction round()
.
L'exemple suivant illustre des cas inhabituels.
substring("12345", 1.5, 2.6)
retourne « 234
»
substring("12345", 0, 3)
retourne « 12
»
substring("12345", 0 div 0, 3)
retourne « » ""
substring("12345", 1, 0 div 0)
retourne ""
substring("12345", -42, 1 div 0)
retourne "12345"
substring("12345", -1 div 0, 1 div 0)
retourne ""
Cet exemple illustre les expressions substring()
précédentes.
Fichier XML
Aucun, le fichier XSLT s'appelle lui-même.
Fichier XSLT (substring.xsl)
Données en sortie formatées
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) =
Sortie du processeur
<?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) =