Freigeben über


string-Funktion

Konvertiert ein Objekt in eine Zeichenfolge.

string string(object?)

Hinweise

Konvertieren von Knotengruppen in Zeichenfolgen

Mithilfe der string()-Funktion wird eine Knotengruppe in eine Zeichenfolge konvertiert, indem der Zeichenfolgenwert des ersten Knotens in der Knotengruppe zurückgegeben wird. Dies kann in einigen Fällen zu unerwarteten Ergebnissen führen. Beispielsweise bei einer Positionierung auf dem unten aufgeführten <test>-Knoten:

<test>
  <item>Apple</item>
  <item>Banana</item>
  <item>Orange</item>
</test>

Dann gibt der folgende string()-Funktionsaufruf die erste Knotenzeichenfolge ("Apple") zurück:

string(//text()) 

Wenn mithilfe der string()-Funktion der gesamte untergeordnete Text verkettet werden soll, muss ein einzelner Knoten anstelle einer Knotengruppe übergeben werden. Bei dem folgenden string()-Funktionsaufruf wird dann beispielsweise "AppleBananaOrange" zurückgegeben:

string(.)

Dieses Verhalten ergibt für alle XPath-Funktionen, die Zeichenfolgenargumente verwenden, den Wert true. Beim folgenden contains()-Funktionsaufruf

contains(//text(),'Banana')

wird dann beispielsweise der Wert false zurückgegeben. Dieser Fall tritt in diesem Beispiel auf, weil das erste Argument ("//text()") mithilfe von string(//text()) in eine Zeichenfolge konvertiert wird und nur die erste Knotenzeichenfolge ("Apple") gesucht wird. Wenn im Gegensatz dazu die contains()-Funktion überarbeitet wird, um den Punktselektor (".") für das erste Argument wie folgt zu verwenden,

contains(.,'Banana') 

, gibt contains() den Wert true zurück, da stattdessen nach der Zeichenfolge "AppleBananaOrange" gesucht wird.

ms256133.note(de-de,VS.100).gifHinweis:
Wenn die Knotengruppe leer ist, wird eine leere Zeichenfolge zurückgegeben.

Behandeln von Leerraum bei der Konvertierung von Knotengruppen

Knotengruppen mit Leerraum können folgendermaßen behandelt werden:

Wenn beispielsweise ein .//text()-Ausdruck auf das folgende Element angewendet wird, um den inneren Textinhalt auszuwählen,

<name>element</name>

, wird standardmäßig eine Gruppe von drei Knoten zurückgegeben, wobei der erste und dritte Knoten die den tatsächlichen Textdaten ("element") vorangestellten und nachfolgenden Knoten mit Leerraum darstellen:

Node 1: &#10;&#32;&#32;
Node 2: element
Node 03: &#10;

Um Knoten zu ignorieren, die ausschließlich aus Leerraum bestehen, kann die <xsl:strip-space>-Anweisung im XSLT-Stylesheet folgendermaßen angegeben werden:

<xsl:strip-space elements="name"/>

Alternativ können Sie jeden untergeordneten Knoten durchlaufen und mithilfe des unten dargestellten <xsl:for-each>-Beispiels die Suche nach den untergeordneten Knoten wiederholen:

<xsl:for-each select=".//text()">
    <xsl:if test="contains(., 'element')" >
    …
    </xsl:if>
</xsl:for-each>

Konvertieren von Zahlen in Zeichenfolgen

Eine Zahl wird folgendermaßen in eine Zeichenfolge konvertiert.

  • NaN wird in die Zeichenfolge "NaN" konvertiert.

  • Der Wert +0 (null) wird in die Zeichenfolge "0" konvertiert.

  • Der Wert -0 (null) wird in die Zeichenfolge "0" konvertiert.

  • Plus unendlich wird in die Zeichenfolge "Infinity" konvertiert.

  • Minus unendlich wird in die Zeichenfolge "-Infinity" konvertiert.

  • Wenn die Zahl eine ganze Zahl ist, wird die Zahl dezimal als Zahl ohne Dezimalkomma und ohne vorangestellten Nullen dargestellt. Der Zahl wird ein Minuszeichen (-) vorangestellt, wenn sie negativ ist.

  • Andernfalls wird die Zahl dezimal als Zahl mit Dezimalkomma und mindestens einer Ziffer vor dem Dezimalkomma und mindestens einer Ziffer nach dem Dezimalkomma dargestellt, der ein Minuszeichen (-) vorangestellt wird, wenn die Zahl negativ ist. Vor dem Dezimalkomma darf keine 0 (null) stehen, außer wenn es sich dabei um die eine direkt vor dem Dezimalkomma erforderliche Ziffer handelt. Hinter dieser einen erforderlichen Ziffer dürfen nach dem Dezimalkomma nur so viele weitere Ziffern stehen, wie erforderlich ist, um die Zahl von den anderen numerischen IEEE 754-Werten eindeutig zu unterscheiden.

ms256133.note(de-de,VS.100).gifHinweis:
Die string()-Funktion ist nicht dafür vorgesehen, Zahlen in Zeichenfolgen zu konvertieren, um diese den Benutzern anzuzeigen.Diese Funktion steht in der format-number()-Funktion und dem <xsl:number>-Element in XSLT (XSL Transformations) zur Verfügung.

Konvertieren boolescher Werte in Zeichenfolgen

Der boolesche false-Wert wird in die Zeichenfolge "false" konvertiert. Der boolesche true-Wert wird in die Zeichenfolge "true" konvertiert.

Konvertieren von Objekten in Zeichenfolgen

Ein Objekt, das einen anderen Typ als die vier Basistypen aufweist, wird auf eine Weise in eine Zeichenfolge konvertiert, die von dem betreffenden Typ abhängt.

Wenn das Argument weggelassen wird, erfolgt als Standard eine Konvertierung in eine Knotengruppe mit dem Kontextknoten als einzigem Member.

Beispiel

Im folgenden Beispiel wird die Verwendung der string()-Funktion in einem XPath-Ausdruck veranschaulicht. In zwei Fällen (siehe die fett dargestellten Anweisungen unten in der XSLT-Datei) wird die Funktion verwendet, um sicherzustellen, dass deren Argument wie ein Zeichenfolgenausdruck behandelt wird.

XML-Datei (string.xml)

XSLT-Datei (string.xsl)

Ausgabe

1     +   2.00   =   3
One   +   2.00   =   NaN
1     -   2.00   =   -1
1     *   2.00   =   2
-1   div   0.0   =   -Infinity
5    mod   2     =   1
5    mod   2.5   =   0
5    mod   2.25  =   0.5
0     &    1     =   Invalid arithmetic operation

Siehe auch

Verweis

Referenz zu XML-Datentypen
format-number-Funktion

Konzepte

NaN-Werte