string()-Funktion |
Diese Funktion liefert den String-Wert des Arguments.
Eingaben
Ein Objekt. Das Objekt wird wie unten beschrieben in einen String konvertiert.
Ausgabe
Ein String. Das Eingabeargument wird wie folgt in einen String konvertiert: Ist das Argument eine Knotenmenge, so wird der erste Knoten in der Knotenmenge in einen String konvertiert. (Der erste Knoten in der Knotenmenge ist derjenige, der in der Dokumentreihenfolge zuerst vorkommt.) Ist das Argument eine Zahl, so wird diese folgendermaßen konvertiert: Der Wert NaN wird in den String "NaN" konvertiert. Positiv Null wird in den String "0" konvertiert. Negativ Null wird in den String "0" konvertiert. Positiv unendlich wird in den String "Infinity" konvertiert. Negativ unendlich wird in den String "-Infinity" konvertiert. Eine Ganzzahl wird in einen String konvertiert, der diese Ganzzahl repräsentiert, ohne Dezimalkomma oder führende Nullen. Ist die Ganzzahl negativ, wird ein Minuszeichen (-) vorangestellt. Jede sonstige Zahl wird in einen String mit Dezimalpunkt konvertiert, mit mindestens einer Ziffer vor und hinter dem Dezimalpunkt. Ist die Zahl negativ, wird ein Minuszeichen (-) vorangestellt. Es werden keine führende Nullen vor dem Dezimalpunkt ausgegeben (mit Ausnahme der einen obligatorischen Ziffer vor dem Dezimalpunkt). Nach dem Dezimalpunkt werden nur so viele Ziffern ausgegeben, wie für eine Unterscheidung von anderen numerischen Werten notwendig ist, gemäß Definition des IEEE-754-Standard (der Standard, der auch von den Java-Typen float und double verwendet wird). Ist das Argument ein Boolescher Wert, wird der Wert true durch den String "true" repräsentiert und der Wert false durch den String "false". Hat das Argument einen anderen Datentyp, wird es seinem Typ entsprechend in einen String konvertiert. Lesen Sie in der Dokumentation Ihres XSLT-Prozessors nach, welche weiteren Datentypen unterstützt werden, und wie sie in Strings konvertiert werden.
Definition
XPath-Abschnitt 4.2, Zeichenkettenfunktionen.
Beispiel
Hier das XML-Dokument, mit dem die Funktion string() erprobt werden soll:
    <?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>
Die Funktion string() wird mit einer Vielzahl von Argumenten getestet:
    <?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() function:</xsl:text>

        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string(count(/test))=</xsl:text>
        <xsl:value-of select="string(count(/test))"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string(count(/test/question))=</xsl:text>
        <xsl:value-of select="string(count(/test/question))"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string('4')=</xsl:text>
        <xsl:value-of select="string('4')"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string(true())=</xsl:text>
        <xsl:value-of select="string(true())"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string(false())=</xsl:text>
        <xsl:value-of select="string(false())"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   string(count(/test/question) > 5)=</xsl:text>
        <xsl:value-of select="string(count(/test/question) > 5)"/>
        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>Here are the string values of some <text> elements:</xsl:text>
        <xsl:value-of select="$newline"/>
        <xsl:for-each select="/test/question/text">
          <xsl:text>   </xsl:text>
          <xsl:value-of select="string(.)"/>
          <xsl:value-of select="$newline"/>
        </xsl:for-each>
      </xsl:template>

    </xsl:stylesheet>
Hier die Ergebnisse der Transformation:
    Tests of the string() function:

       string(count(/test))=1
       string(count(/test/question))=2
       string('4')=4
       string(true())=true
       string(false())=false
       string(count(/test/question) > 5)=false

    Here are the string values of some <text> elements:
       When completed, the Eiffel Tower was the tallest building in the world.
       New York's Empire State Building knocked the Eiffel Tower from its pedestal.