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