Compartir a través de


Fases de ubicación

Una fase de ubicación selecciona un conjunto de nodos relacionados con el nodo de contexto.

Hay tres partes en un paso de ubicación: un eje opcional, una prueba de nodos y un predicado opcional. La sintaxis para una fase de ubicación es el nombre del eje seguido de dos puntos dobles, a continuación la prueba de nodo y, por último, algún predicado (o ninguno) incluido entre corchetes. La forma más básica de esta sintaxis es la siguiente:

axis::nodetest[predicate]
  • axis
    Especifica la relación que existe entre el nodo de contexto y los nodos que va a seleccionar la fase de ubicación. Dicho de otro modo, el eje indica la dirección general que la fase de ubicación procesa del nodo de contexto. En una fase de ubicación, el eje es opcional. Si se omite, el eje toma como valor predeterminado child::. Además, algunos ejes tienen formas abreviadas; por ejemplo, el carácter de Y comercial (@) es una forma abreviada del eje de atributos.
  • nodetest
    Especifica el tipo de nodo o nombre expandido de los nodos que la fase de ubicación va a seleccionar inicialmente. La prueba de nodo indica qué nodos, de los nodos que aparecen en el eje indicado, se considerarán como candidatos, es decir, nodos potenciales, para la fase de ubicación.
  • predicate
    Utiliza una expresión XPath (condición que se debe cumplir) para volver a definir el conjunto de nodos seleccionados por una fase de ubicación. El predicado es un filtro, que especifica un criterio de selección para volver a definir la lista de nodos candidatos. El predicado es opcional. Si no hay predicado, no habrá corchetes ([ y ]) en la fase de ubicación.

Selección de nodos

El conjunto de nodos seleccionados por una fase de ubicación se obtiene de generar un conjunto de nodos inicial basado en la relación entre el eje y la prueba de nodo, y filtrar a continuación ese conjunto de nodos inicial por cada uno de los predicados.

El conjunto de nodos inicial consta de los nodos que cumplen los dos criterios siguientes:

  • Los nodos tienen la relación con el nodo de contexto especificado por el eje.

  • Los nodos tienen el tipo de nodo y el nombre expandido especificado por la prueba de nodo.

XPath utiliza entonces el primer predicado de la fase de ubicación para filtrar el conjunto de nodos inicial para generar un nuevo conjunto de nodos. XPath utiliza después el segundo predicado para filtrar el conjunto de nodos que resulta del primer predicado. Este proceso de filtrado se repite hasta que XPath haya evaluado todos los predicados. El conjunto de nodos que se obtiene después de aplicar todos los predicados es el conjunto de nodos seleccionado por la fase de ubicación.

ms256472.note(es-es,VS.100).gifNota:
Como el eje afecta a la evaluación de la expresión de cada predicado, la semántica de un predicado se define con respecto al eje especificado.

En la siguiente tabla se muestran algunas fases de ubicación de muestra que utilizan la sintaxis completa.

Fase de ubicación Descripción

child::*[position()=1]

Ubica el primer elemento secundario del nodo de contexto.

ancestor-or-self::book[@catdate="2000-12-31"]

Ubica todos los antecesores de cualquier elemento secundario <book> del nodo de contexto, así como el elemento secundario <book> en sí, siempre y cuando el elemento en cuestión tenga un atributo catdate con el valor "2000-12-31".

//parent::node()[name()="book"] | descendant::node()[name()="author"]

Ubica cualquier nodo del documento cuyo nodo principal se llama "book", o cualquier nodo descendiente del nodo de contexto cuyo nombre es "author".

Vea también

Referencia

Ejes
Pruebas de nodos
Predicados