Compartir a través de


Especificar una ruta de acceso de ubicación (SQLXML 4.0)

Las consultas XPath se especifican en forma de expresión. Existen varios tipos de expresiones. Una ruta de acceso de ubicación es una expresión que selecciona un conjunto de nodos relativos al nodo de contexto. El resultado de evaluar una ruta de acceso de ubicación es un conjunto de nodos.

Tipos de rutas de acceso de ubicación

Una ruta de acceso de ubicación puede usar cualquiera de estos formatos:

  • Ruta de acceso de ubicación absoluta

    Una ruta de acceso de ubicación absoluta comienza en el nodo raíz del documento. Consta de una barra diagonal (/) que puede ir seguida de una ruta de acceso de ubicación relativa. La barra diagonal (/) selecciona el nodo raíz del documento.

  • Ruta de acceso de ubicación relativa

    Una ruta de acceso de ubicación relativa comienza en el nodo de contexto del documento. Una ruta de acceso de ubicación consta de una secuencia de uno o más pasos de ubicación separados por una barra diagonal (/). Cada paso selecciona un conjunto de nodos relativos al nodo de contexto. La secuencia inicial de pasos selecciona un conjunto de nodos relativo a un nodo de contexto. Cada uno de los nodos de este conjunto se utiliza como un nodo de contexto en el paso siguiente. Los conjuntos de nodos identificados por este paso se unen. Por ejemplo, child::Order/child::OrderDetail selecciona los elementos secundarios <OrderDetail> de los elementos secundarios <Order> del nodo de contexto.

    [!NOTA]

    En la implementación SQLXML 4.0 de XPath, cada consulta XPath comienza en el contexto raíz, aunque la consulta XPath no sea explícitamente absoluta. Por ejemplo, una consulta XPath que comienza por "Customer" se trata como "/Customer". En la consulta XPath Customer[Order], Customer comienza en el contexto raíz, pero Order comienza en el contexto de Customer. Para obtener más información, vea Introducción al uso de consultas XPath (SQLXML 4.0).

Pasos de ubicación

Una ruta de acceso de ubicación (absoluta o relativa) está compuesta por pasos de ubicación que contienen tres partes:

  • Eje

    El eje especifica la relación jerárquica entre los nodos seleccionados por el paso de ubicación y el nodo de contexto. Se admiten los ejes parent, child, attribute y self. Si se especifica un eje child en la ruta de acceso de ubicación, todos los nodos seleccionados por la consulta son elementos secundarios del nodo de contexto. Si se especifica un eje parent, el nodo seleccionado es el nodo primario del nodo de contexto. Si se especifica un eje attribute, los nodos seleccionados son los atributos del nodo de contexto.

  • Prueba de nodo

    Una prueba de nodo especifica el tipo de nodo seleccionado por el paso de ubicación. Cada eje (child, parent, attribute y self) tiene un tipo de nodo principal. Para el eje attribute, el tipo de nodo principal es <attribute>. Para los ejes parent, child y self, el tipo de nodo principal es <element>.

    Por ejemplo, si la ruta de acceso de ubicación especifica child::Customer, se seleccionan los elementos secundarios <Customer> del nodo de contexto. Dado que el eje child tiene <element> como su tipo de nodo principal, la prueba de nodo, Customer, es TRUE si Customer es un nodo de <element>.

  • Predicados de selección (cero o más)

    Un predicado filtra un conjunto de nodos con respecto a un eje. La especificación de predicados de selección en una expresión XPath es similar a especificar una cláusula WHERE en una instrucción SELECT. El predicado se especifica entre corchetes. Al aplicar la prueba especificada en los predicados de selección, se filtran los nodos devueltos por la prueba de nodo. Para cada nodo del conjunto de nodos que va a filtrarse, la expresión de predicado se evalúa con ese nodo como nodo de contexto, con el número de nodos del conjunto de nodos como tamaño de contexto. Si la expresión de predicado se evalúa como TRUE para ese nodo, el nodo se incluye en el conjunto de nodos resultante.

    La sintaxis de un paso de ubicación es el nombre de eje y la prueba de nodo separados por dos signos de dos puntos (::), seguidos de cero o más expresiones, cada una de ellas entre corchetes. Por ejemplo, la expresión XPath (ruta de acceso de ubicación) child::Customer[@CustomerID='ALFKI'] selecciona todos los elementos secundarios <Customer> del nodo de contexto. A continuación, se aplica la prueba del predicado al conjunto de nodos, que sólo devuelve los nodos del elemento <Customer> con el valor de atributo 'ALFKI' en su atributo CustomerID.

En esta sección