Fonction substring (XPath)

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é.

Avertissement

Les conversions de chaînesdes collections de nœuds transmises en tant qu'arguments à cette fonction peuvent donner des résultats inattendus.Pour plus d'informations, consultez Fonction string (XPath).

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)

<?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>

ms256054.collapse_all(fr-fr,VS.120).gifDonné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) =

ms256054.collapse_all(fr-fr,VS.120).gifSortie 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) =

Voir aussi

Référence

Référence des types de données XML