Compartir a través de


Función ms:string-compare

Lleva a cabo comparación de cadena. Esta función es necesaria porque dos cadenas no pueden compararse lexicograficamente mediante XPath.

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

Parámetros

  • cadena x
    Valor de cadena para comparación Los valores que no son cadena se convierten en un valor de cadena antes de la comparación.
  • cadena y
    Valor de cadena para comparación Los valores que no son cadena se convierten en un valor de cadena antes de la comparación.
  • lenguaje de cadena[opcional]
    Define el lenguaje para determinar el orden de ordenación. Esto es similar al atributo <xsl:sort> lang (por ejemplo, "en-US" o "fr-CA"). Si se omite este parámetro en una cadena vacía, el lenguaje se define mediante el entorno de sistema (lenguaje del subproceso actual).
  • opciones de cadena[opcional]
    Por defecto, la comparación distingue entre mayúsculas y minúsculas, con minúsculas primero.

    opción descripción

    u

    Hace que la comparación distinga entre mayúsculas y minúsculas, mayúsculas primero.

    i

    Hace que la comparación distinga entre mayúsculas y minúsculas en todas las diferencias tradicionales entre caracteres, como caso, kana y ancho. (El ancho de carácter sólo se aplica en algunos lenguajes.)

Valores devueltos

Devuelve uno de los siguientes tres valores numéricos.

If La función de ejemplo devuelve

x < y

-1

x = y

0

x > y

1

Comentarios

Las comparaciones entre cadenas se realizan en orden lexicográfico (diccionario). Especificar un lenguaje u opción no compatible produce un error en tiempo de ejecución. Para componentes MSXML, se devuelve E_FAIL.

Ejemplo

El siguiente código de ejemplo muestra cómo comparar dos cadenas mediante la función ms:string-compare. Se comparan tres cadenas de números ("1", "2" y "3") con "2". El resultado de las comparaciones se muestra en la tabla que viene a continuación del código.

Archivo XML

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

Archivo XSLT (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>

El resultado de las comparaciones es el siguiente:

x, y Resultado

"1" , "2"

-1

"2" , "2"

0

"3" , "2"

1

Vea también

Referencia

Referencia de esquemas XML (XSD)
Referencia de tipos de datos XML