Compartir a través de


Colecciones XPath

Las colecciones devueltas por las consultas XPath conservan el orden de documento, la jerarquía y la identidad hasta el extremo en el que éstas estén definidas.Es decir, una colección de elementos se devuelve en orden de documento sin elementos repetidos.Puesto que los atributos por definición no están ordenados, no hay un orden implícito en los atributos devueltos para un elemento específico.

La colección de todos los elementos con un cierto nombre de etiqueta se expresa mediante el mismo nombre de etiqueta.Esto puede calificarse mostrando que los elementos se seleccionan a partir del contexto actual mediante un punto y una barra diagonal (./), pero el contexto actual se utiliza de forma predeterminada y no debe tenerse cuenta explícitamente.

Ejemplos

Expresión

Hace referencia a

./first-name

Todos los elementos <first-name>.Tenga en cuenta que esta expresión es equivalente a la expresión que sigue.

first-name

Todos los elementos <first-name>.

Indizar en una colección

Las expresiones XPath facilitan la consulta de un nodo específico dentro de un conjunto de nodos.Simplemente contenga el ordinal de índice entre corchetes.El ordinal se basa en 1 (el primer elemento es número 1).

Los caracteres entre corchetes ([]) tienen una prioridad más alta que los caracteres de barra diagonal (/ y //).Para más información consulte Operadores y caracteres especiales

Ejemplos

Expresión

Hace referencia a

author[1]

El primer elemento <author>.

author[first-name][3]

El tercer elemento <author> que tiene un elemento secundario <first-name>.

Tenga en cuenta que los índices conciernen el conjunto filtrado.Tenga en cuenta, por ejemplo, los siguientes datos.

<x>
  <y/>
  <y/>
</x>
<x>
  <y/>
  <y/>
</x>

La tabla siguiente muestra cómo seleccionar elementos específicos <x> y <y>.

Expresión

Hace referencia a

x/y[1]

El primer <y> dentro de cada <x>.

(x/y)[1]

El primer <y> a partir de cada conjunto completo de elementos <y> dentro de elementos <x>.

x[1]/y[1]

El primer <y> dentro del primer <x>.

Los ejemplos de arriba son referencias simples a colecciones XPath que utilizan valores predeterminados implícitos, tales como el eje child::.Para este eje, la colección de nodos secundarios es indizada en orden de avance del documento.

Para otros ejes, tales como ancestor::, utilice el nombre del eje explícitamente en la expresión XPath.Para este eje, la colección de antecesores es indizada en orden de retroceso del documento.Tenga en cuenta este ejemplo de la tabla anterior:

x/y[1]

Esta expresión es equivalente a esta:

x/child::y[1]

Ambas expresiones significan "para cada elemento <x>, seleccione el primer elemento secundario llamado <y>."

En el siguiente ejemplo se utiliza la misma sintaxis.

x/ancestor::y[1]

Este ejemplo se traduce en "para cada elemento <x>, seleccione el primer elemento antecesor (en orden de retroceso del documento) llamado <y>".La sintaxis es la misma, pero el orden está al revés.

Búsqueda del último elemento en una colección

La función last() devuelve True para el último elemento en una colección.Tenga en cuenta que last concierne al nodo primario.

Ejemplos

Expresión

Hace referencia a

book[last()]

El último elemento <book>.

book/author[last()]

El último elemento <author> dentro de cada elemento <book>.

(book/author)[last()]

El último elemento <author> desde el conjunto entero de elementos <author> dentro de elementos <book>.

Grupo

Se puede utilizar paréntesis para agrupar operadores de colección para ofrecer mayor claridad o donde la prioridad normal no es adecuada para expresar una operación.El grupo de operadores puede utilizarse en cualquier expresión de filtro (predicados), tales como author[(degree or award)and publication].También pueden utilizarse en la expresión de fase superior, como (book|magazine) o (author/degree | book/award).No pueden aplicarse a expresiones de fase nivel inferior.Por ejemplo, author/(degree | award)no es válido.

Ejemplos

Expresión

Hace referencia a

(book/author)

Todos los elementos <author> que son elementos secundarios de cualquier elemento <book> a partir del nodo de contexto actual.

author[(degree or award) and publication]

Todos los elementos <author> que contienen al menos un elemento <degree> o <award> y al menos un elemento <publication>.

Vea también

Referencia

Ejemplo de XPath

Conceptos

Archivo de muestra XML para sintaxis XPath (inventory.xml)