Freigeben über


ms:string-compare-Funktion

Führt Zeichenfolgenvergleiche aus. Diese Funktion ist erforderlich, da zwei Zeichenfolgen mithilfe von XPath nicht lexikografisch verglichen werden können.

number ms:string-compare(string x, string y, [,string language _
                                             [,string options]])

Parameter

  • Zeichenfolge x
    Zeichenfolgenwert für Vergleich. Werte, die keine Zeichenfolgen darstellen, werden vor dem Vergleich in einen Zeichenfolgenwert konvertiert.
  • Zeichenfolge y
    Zeichenfolgenwert für Vergleich. Werte, die keine Zeichenfolgen darstellen, werden vor dem Vergleich in einen Zeichenfolgenwert konvertiert.
  • Zeichenfolgensprache [optional]
    Definiert die Sprache zur Bestimmung der Sortierreihenfolge. Dies ist vergleichbar mit der Funktionsweise des <xsl:sort> lang-Attributs (z. B. "en-US" oder "fr-CA"). Wenn dieser Parameter ausgelassen wird oder eine leere Zeichenfolge darstellt, wird die Sprache von der Systemumgebung definiert (Sprache des aktuellen Threads).
  • Zeichfolgenoptionen [optional]
    Standardmäßig wird beim Vergleich die Groß- und Kleinschreibung berücksichtigt. Dabei hat die Kleinschreibung Priorität vor der Großschreibung.

    Option Beschreibung

    u

    Führt einen Vergleich unter Berücksichtigung der Groß- und Kleinschreibung aus. Dabei hat die Großschreibung Priorität vor der Kleinschreibung.

    i

    Führt den Vergleich aus, ohne dabei übliche Zeichenunterschiede zu berücksichtigen (z. B. Groß-/Kleinschreibung, Kana und Zeichenbreite). (Die Zeichenbreite ist nur für bestimmte Sprachen relevant.)

Rückgabewerte

Gibt einen der folgenden drei numerischen Werte zurück.

Wenn Die Beispielfunktion gibt Folgendes zurück

x < y

-1

x = y

0

x > y

1

Hinweise

Vergleiche zwischen Zeichenfolgen erfolgen in lexikografischer Reihenfolge (gemäß Wörterbuch). Die Angabe einer nicht unterstützten Sprache oder Option führt zu einem Laufzeitfehler. Für MSXML-Komponenten wird E_FAIL zurückgegeben.

Beispiel

Im folgenden Codebeispiel wird der Vergleich von zwei Zeichenfolgen mithilfe der ms:string-compare-Funktion dargestellt. In dem Beispiel werden drei Zeichenfolgen, die Zahlen ("1", "2" und "3") enthalten, mit "2" verglichen. Die Ergebnisse der Vergleiche sind in der nach dem Code folgenden Tabelle dargestellt.

XML-Datei

<?xml version="1.0"?>
<string-sample>
   <string>1</string>
   <string>2</string>
   <string>3</string>
</string-sample>

XSLT-Datei (translate.xsl)

<?xml version='1.0'?>
<xsl:stylesheet  version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:ms="urn:schemas-microsoft-com:xslt">
   <xsl:output method="html" omit-xml-declaration="yes"/>
   <xsl:template match="/string-sample">
      <xsl:for-each select="string">
         <xsl:value-of select="ms:string-compare(., '2', 'en-US', 'i')"/>,
     </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

Bei den Vergleichen traten folgende Ergebnisse auf:

x, y Ergebnis

"1" , "2"

-1

"2" , "2"

0

"3" , "2"

1

Siehe auch

Verweis

Referenz zu XML-Schemata (XSD)
Referenz zu XML-Datentypen