Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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