Existem dois tipos diferentes de caminhos de local: absoluto e relativo. Os caminhos absolutos são iniciados em um ponto de referência fixo - o nó raiz. Os caminhos relativos são iniciados em um ponto variável -um nó de contexto.
Um caminho de local retorna um conjunto de nós, que é uma coleta de nós (qualquer parte de um documento XML, como um elemento, atributo, espaço de nomes ou comentário). Os caminhos de local consistem nas etapas de local. Cada etapa possui duas partes:
Uma etapa de local é semelhante ao seguinte:
axis: node-test
As etapas de local podem ser combinadas, separando-as com barras. Cada etapa no caminho de local resultante configura o nó de contexto para o próximo caminho na etapa.
Para acessar as opções Referência de Sintaxe, clique na guia Referência no assistente Expressão XPath.
Cada etapa no local XPath se move ao longo de um eixo a partir de um nó de contexto. Por exemplo, se você selecionar child como seu eixo, sua expressão XPath procura através de todos os filhos do nó de contexto.
| Eixo | Local no qual os nós são procurados |
|---|---|
| ancestor:: | O nó raiz e todos os nós de elemento que contêm o nó de contexto. |
| ancestor-or-self :: | Todos os ascendentes do nó de contexto, bem como o próprio nó. |
| attribute:: | Todos os atributos do nó de contexto. |
| child:: | Todos os filhos do nó de contexto. O atributo e os nós de espaço de nomes não são filhos de
quaisquer nós, embora eles tenham nós pais. Esse é o valor padrão. |
| descendant:: | Todos os nós contidos dentro do nó de contexto, ou seja, qualquer filho ou os filhos dos filhos e assim por diante. Apenas os nós raiz e de elementos possuem descendentes. Como o eixo filho, o eixo descendente nunca contém nós de espaço de nomes ou atributos. |
| descendant-or-self:: | Qualquer descendente do nó de contexto ou próprio nó de contexto. |
| following:: | Todos os nós que são iniciados após o término do nó de contexto, exceto para os nós de atributo e os nós de espaço de nomes. |
| following-sibling:: | Todos os nós que seguem o fim do nó de contexto e que possuem o mesmo nó pai. Os nós de espaço de nomes e os atributos não possuem irmãos. |
| namespace:: | Todos os espaços de nomes no nó de contexto. |
| parent:: | O nó raiz ou elemento que contém imediatamente o nó de contexto. Apenas o nó raiz não possui um nó pai. |
| preceding:: | Todos os nós que terminam antes do início do nó de contexto, exceto para nós de atributos e nós de espaço de nomes. |
| preceding-sibling:: | Todos os nós que precedem o início do nó de contexto e que possuem o mesmo nó pai. Os nós de espaço de nomes e os atributos não possuem irmãos. |
| self:: | O próprio nó de contexto. |
Cada etapa de local que possui, pelo menos, um eixo e um teste de nó. O teste de nó refina melhor os nós selecionados pela etapa de local. Por exemplo, se você especificar child:: comment( ) como sua etapa de local, sua expressão XPath retorna todo o nó de comentário filho do nó de contexto.
| Nó | O que retorna |
|---|---|
| * | Seleciona todos os elementos, independente do nome. Por exemplo, child::* seleciona todos os elementos filhos do nó de contexto e o attribute::* seleciona todos os atributos do nó de contexto. |
| comment ( ) | Todos os nós de comentário. |
| node( ) | Todos os nós, independente do tipo. |
| processing-instruction ('target' ) | Sem argumentos, retorna todas as instruções de processamento. Com um único argumento de cadeia target, seleciona todas as instruções de processamento que possuem o destino especificado. |
| text( ) | Todos os nós de texto. Por exemplo, child::text() seleciona todo o nó de texto filho do nó de contexto. |
Conjunto de Nós
| Operador | Função |
|---|---|
| | | Este é o operador union. Ele toma dois conjuntos de nós e combina todos os nós nos conjuntos de nós (após remover os nós duplicados). |
| / | Seleciona todos os nós filhos. |
| // | Seleciona os nós descendentes. |
Booleano
Os operadores booleanos podem ser utilizados para comparar as expressões numéricas ou cadeia ou valores Booleanos.
| Operador | Retorna |
|---|---|
| <= | true se o valor da primeira expressão numérica for menor ou igual ao valor do segundo; caso contrário, false. |
| < | true se o valor da primeira expressão numérica for menor que o valor do segundo; caso contrário, false. |
| >= | true se o valor da primeira expressão numérica for maior ou igual ao valor do segundo; caso contrário, false. |
| > | true se o valor da primeira expressão numérica for maior que o valor do segundo; caso contrário, false. |
| = | true se ambas as expressões (cadeia ou numérica) possuírem o mesmo valor; caso contrário, false. |
| != | true se ambas as expressões (cadeia ou numérica) não tiverem o mesmo valor; caso contrário, false. |
| e | true, se ambos os valores Booleanos forem true; caso contrário, false. |
| ou | false, apenas se ambos os valores forem false; caso contrário, true. |
Número
Esses operadores podem ser utilizados para manipular os valores numéricos.
| Operador | Retorna |
|---|---|
| + | A soma das duas expressões numéricas. |
| - | A diferença da primeira expressão numérica menos a segunda. |
| * | O produto de duas expressões numéricas. |
| div | A primeira expressão numérica divida pela segunda expressão. |
| mod \ | A primeira expressão numérica módulo segunda expressão (retorna o restante). |