Compartir a través de


Predicados

Un predicado es una expresión XPath que filtra un conjunto de nodos en función de un eje y produce un nuevo conjunto de nodos. Este proceso de filtrado implica una evaluación secuencial del predicado en relación a cada nodo del conjunto de nodos. Cada vez que se evalúa el predicado con respecto a un nodo:

  • El nodo de contexto es el nodo que se está evaluando en ese momento.

  • El tamaño de contexto es el número de nodos del conjunto de nodos que se está evaluando.

  • La posición de contexto es la posición del nodo de contexto del conjunto de nodos.

Este último contexto, el del nodo de contexto del conjunto de nodos, se refiere a la dirección a la que el eje especificado en la fase de ubicación lleva el árbol de documentos. Normalmente, un eje lleva el árbol hacia delante o hacia atrás:

  • Un eje hacia delante es aquel que contiene los nodos de contexto que se encuentran detrás del nodo de contexto. Los ejes child::, descendant::, descendant-or-self::, following:: y following-sibling:: son ejes hacia delante. Estos ejes hacia delante enumeran los nodos del conjunto de nodos, siendo la primera posición 1.

  • Un eje hacia atrás es aquel que contiene los nodos de contexto que se encuentran delante del nodo de contexto. Los ejes ancestor::, ancestor-or-self::, preceding:: y preceding-sibling:: son ejes hacia atrás. Estos ejes hacia atrás numeran los nodos del conjunto de nodos en orden inverso, siendo la primera posición 1.

En cuanto a los ejes restantes, los ejes self:: y parent:: devuelven un único nodo. Por tanto, la designación de hacia delante o hacia atrás no tiene sentido sin estos dos ejes. No existe un orden definido para los ejes attribute:: y namespaces::, por lo que ambos pueden ser ejes hacia delante o ejes hacia atrás.

Selección de nodos

Una expresión de predicado se evalúa en relación a un valor numérico o booleano.

Si el predicado devuelve un número, XPath compara ese número con la posición de contexto del nodo de contexto. Si el número y la posición coinciden (es decir, el nodo de contexto está en la posición adecuada en el árbol), el predicado se considera verdadero y el nodo de contexto se incluye en el nuevo conjunto de nodos. En caso contrario, el nodo de contexto queda excluido del nuevo conjunto de nodos.

Si el predicado no devuelve un número, XPath utiliza la función boolean para convertir el resultado en un valor booleano. Por ejemplo, el predicado [genre='Computer'] devuelve un conjunto de nodos. Si el nodo de contexto tiene un elemento <genre> secundario con el contenido Computer, este predicado se considerará verdadero y el nodo de contexto se incluirá en el nuevo conjunto de nodos. En caso contrario, el nodo de contexto queda excluido del nuevo conjunto de nodos.

ms256205.note(es-es,VS.100).gifNota:
Un predicado numérico [x] equivale a un predicado booleano [position()=x].

Vea también

Referencia

Fases de ubicación
Ejes
Pruebas de nodos