Fonction string-length() |
Renvoie le nombre de caractères de la chaîne transmise comme l'argument de cette fonction. Si aucun argument n'est spécifié, le nœud de contexte est converti en chaîne et la longueur de cette chaîne est renvoyée.
Entrées
Une chaîne facultative.
Sortie
Le nombre de caractères définis dans la chaîne.
Définie dans
XPath section 4.2, Fonctions Chaîne.
Exemple
L'exemple suivant présente les résultats de l'invocation de la fonction string-length() en fonction de plusieurs types d'argument. Le document XML utilisé comme exemple est le suivant :
    <?xml version="1.0"?>
    <test>
      <p>This is a test XML document used by several
      of our sample stylesheets.</p>
      <question>
        <text>When completed, the Eiffel Tower was the
        tallest building in the world.</text>
        <true>You're correct!  The Eiffel Tower was the
        world's tallest building until 1930.</true>
        <false>No, the Eiffel Tower was the world's
        tallest building for over 30 years.</false>
      </question>
      <question>
        <text>New York's Empire State Building knocked
        the Eiffel Tower from its pedestal.</text>
        <true>No, that's not correct.</true>
        <false>Correct!  New York's Chrysler Building,
        completed in 1930, became the world's tallest.</false>
      </question>
    </test>
Ce document sera traité par la feuille de style suivante :
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:text>Tests of the string-length() function:</xsl:text>

        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string-length(/test)=</xsl:text>
        <xsl:value-of select="string-length(/test)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string-length(/true)=</xsl:text>
        <xsl:value-of select="string-length(/true)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string-length(//true)=</xsl:text>
        <xsl:value-of select="string-length(//true)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string-length(//test|//true|//text)=</xsl:text>
        <xsl:value-of select="string-length(//test|//true|//text)"/>
        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:for-each select="/test/question">
          <xsl:text>   Question #</xsl:text>
          <xsl:value-of select="position()"/>
          <xsl:text> contains </xsl:text>
          <xsl:value-of select="string-length()"/>
          <xsl:text> characters.</xsl:text>
          <xsl:value-of select="$newline"/>
        </xsl:for-each>
      </xsl:template>

    </xsl:stylesheet>
Les résultats sont les suivants :
    Tests of the string-length() function:

       string-length(/test)=522
       string-length(/true)=0
       string-length(//true)=78
       string-length(//test|//true|//text)=522

       Question #1 contains 239 characters.
       Question #2 contains 203 characters.
Lorsque la fonction string-length() a été invoquée sans argument, le nœud de contexte a été converti en chaîne, puis la longueur de cette chaîne a été renvoyée. Les deux éléments <question> ont été gérés de cette manière dans l'élément <xsl:for-each>.