¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Comparaciones (XPath)

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

String

text(lvalue) op text(rvalue)

a < GGG

Integer

(long) lvalue op (long) rvalue

a < 3

Real

(double) lvalue op (double) rvalue

a < 3.1

Las comillas sencillas o dobles pueden utilizarse para delimitadores de cadena en expresiones. Facilita construir y pasar patrones 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.

Expresión

Hace referencia a

author[last-name = "Bob"]

Todos los elementos <author> que contienen al menos un elemento <last-name> con el valor Bob.

author[last-name[1] = "Bob"]

Todos los elementos <author> cuyo primer elemento secundario <last-name> tiene el valor Bob.

author/degree[@from != "Harvard"]

Todos los elementos <author> que contienen elementos <degree> con un atributo from que no es igual a "Harvard".

author[last-name = /editor/last-name]

Todos los elementos <author> que contienen un elemento <last-name> que es el mismo que el elemento <last-name> dentro del elemento <editor> en el elemento raíz.

author[. = "Matthew Bob"]

Todos los elementos <author> cuyo valor de cadena es Matthew Bob.

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.

Un conjunto de operadores de comparación binaria compara números y devuelve resultados booleanos. Los operadores &lt;, &lt;=, &gt; y &gt;= 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 patrones 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.

ms256135.collapse_all(es-es,VS.120).gifEjemplos

Expresión

Hace referencia a

author[last-name = "Bob" and price &gt; 50]

Todos los elementos <author> que contienen un elemento <last-name> con el valor Bob y un elemento <price> con un valor mayor que 50.

degree[@from != "Harvard"]

Todos los elementos <degree> con un atributo from que no es igual que "Harvard".

book[position() &lt;= 3]

Los primeros tres elementos <book> (1, 2, 3) en el archivo XML.

ms256135.collapse_all(es-es,VS.120).gifEjemplo

ms256135.collapse_all(es-es,VS.120).gifArchivo XML (test.xml)


<?xml version="1.0"?>
<test>

    <x a="1">
      <x a="2" b="B">
        <x>
          <y>y31</y>
          <y>y32</y>
        </x>
      </x>
    </x>

    <x a="2">
      <y>y2</y>
    </x>

    <x a="3">
      <y>y3</y>
    </x>

</test>


ms256135.collapse_all(es-es,VS.120).gifArchivo 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.


<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>

<!-- Suppress text nodes not covered in subsequent template rule. -->
<xsl:template match="text()"/>

<xsl:template match="*">
   <xsl:element name="{name()}">
      <xsl:apply-templates select="*|@*"/>
      <xsl:if test="text()">
         <xsl:value-of select="."/>
      </xsl:if>
   </xsl:element>
</xsl:template>

<xsl:template match="@*">
   <xsl:attribute name="{name()}">
      <xsl:value-of select="."/>
   </xsl:attribute>
</xsl:template>

<xsl:template match="/test">
  <xsl:apply-templates select="//x[position() = 1 ] "/>
</xsl:template>

</xsl:stylesheet>


ms256135.collapse_all(es-es,VS.120).gifResultado 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>

Adiciones de comunidad

Mostrar:
© 2015 Microsoft