string-length()-Funktion | |
Diese Funktion gibt die Anzahl der Zeichen in dem String zurück, der als Argument an die Funktion übergeben worden ist. Ohne Argument wird der Kontextknoten in einen String konvertiert und seine Länge zurückgegeben. | |
Eingaben | |
Ein optionaler String. |
|
Ausgabe | |
Die Anzahl der im String definierten Zeichen. |
|
Definition | |
XPath-Abschnitt 4.2, Zeichenkettenfunktionen. |
|
Beispiel | |
Das folgende Beispiel demonstriert die Ergebnisse, wenn die Funktion string-length() auf eine Vielzahl verschiedener Argumenttypen angewendet wird. Für das Beispiel wird das folgende XML-Dokument verwendet: <?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> Das Dokument wird mit dem folgenden Stylesheet verarbeitet: <?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> Hier die Ergebnisse der Transformation: 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. Beim Aufruf der Funktion string-length() ohne Argumente wurde der Kontextknoten in einen String konvertiert und dann die Länge dieses Strings zurückgegeben. Die zwei <question>-Elemente wurden innerhalb des <xsl:for-each>-Elements so behandelt. |