Comparaciones
Para comparar dos objetos en XPath, utilice el signo =
para probar la igualdad, o utilice !=
para probar la desigualdad.
Para una operación de comparación, se deberán suministrar exactamente dos operandos. Las comparaciones se realizan evaluando cada operando y convirtiéndolos según sea necesario, de forma que sean del mismo tipo. Esto se lleva a cabo de acuerdo con el proceso descrito más abajo, en "Orden de prioridad para comparaciones".
Todos los elementos y atributos son cadenas, pero se convierten automáticamente en valores enteros para comparaciones numéricas. Los valores numéricos literales se convierten en tipos long o double durante las operaciones de comparación, tal como se muestra en la siguiente tabla.
Para obtener más información sobre <
y otros operadores de comparación binaria, vea "Operadores de comparación binaria" más abajo.
Tipo de literal | Comparación | Ejemplo |
---|---|---|
Cadena |
|
|
Entero |
|
|
Real |
|
|
Las comillas sencillas o dobles pueden utilizarse para delimitadores de cadena en expresiones. Facilita construir y pasar modelos desde lenguajes de scripts.
Para obtener más información sobre cómo se realizan comparaciones mediante XPath, vea la sección 3.4 ("Booleanos") del Lenguaje de rutas XML (XPath) Versión 1.0 (W3C recomendación 16 noviembre 1999) en www.w3.org/TR/xpath.
Ejemplos
Expresión | Hace referencia a |
---|---|
|
Todos los elementos |
|
Todos los elementos |
|
Todos los elementos |
|
Todos los elementos |
|
Todos los elementos |
Orden de prioridad para comparaciones
Las comparaciones en relación con los tipos de datos obedecen un orden de prioridad.
Si al menos un operando es booleano, se convierte primero cada operando en un booleano.
De lo contrario, si al menos un operando es un número, se convierte primero cada operando en un número.
De lo contrario, si al menos un operando es una fecha, se convierte primero cada operando en una fecha.
De lo contrario, ambos operandos se convierten primero en cadenas.
Operadores de comparación binaria
Un conjunto de operadores de comparación binaria compara números y devuelve resultados booleanos. Los operadores <
, <=
, >
y >=
se utilizan para menor que, menor que o igual que, mayor que y mayor que o igual que, respectivamente. Las comillas sencillas o dobles pueden utilizarse para delimitadores de cadena en expresiones. Esto facilita construir y pasar modelos en lenguajes de scripts.
Tenga en cuenta que estos operadores de comparación funcionan solamente con números. Puede comparar cadenas para comprobar la igualdad, pero si desea comparar cadenas para determinar el criterio de ordenación, debe usar las Funciones de extensión de XPath de Microsoft.
Ejemplos
Expresión | Hace referencia a |
---|---|
|
Todos los elementos |
|
Todos los elementos |
|
Los primeros tres elementos |
Ejemplo
Archivo XML (test.xml)
Archivo XSLT (test.xsl)
La siguiente hoja de estilos XSLT selecciona todos los elementos <x>
que son los primeros de sus nodos relacionados en el orden del documento.
Resultado con formato
La transformación aplicada al archivo XML de arriba produce el siguiente resultado:
<x a="1">
<x a="2" b="B">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
</x>
<x a="2" b="B">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
<x>
<y>y31</y>
<y>y32</y>
</x>