È possibile utilizzare le opzioni di riferimento sintassi per specificare gli operatori e il percorso di posizione per l'espressione XPath. Gli operatori vengono utilizzati per manipolare i valori numerici, i percorsi di combinazione e per confrontare i valori di stringa o numerici. Una percorso di posizione descrive la posizione di un nodo o di un gruppi di nodi in un documento XML.
Ci sono due tipi diversi di percorsi di posizione - assoluto e relativo. I percorsi assoluti iniziano ad un punto di riferimento fisso - il nodo principale. I percorsi relativi iniziano ad un punto variabile - un nodo di contesto.
Un percorso di posizione restituisce un insieme di nodi che è una raccolta di nodi (tutte le parti di un documento XML, come un elemento, un attributo, uno spazio nome o un commento). I percorsi di posizione sono formati da procedure di posizionamento. Ogni passo ha due parti:
Una procedura di posizionamento appare simile a quanto segue:
asse: verifica-nodo
Le procedure di posizionamento possono essere combinati separandoli con le barre retroverse. Ogni procedura nel percorso di posizionamento risultante imposta il nodo del contesto per il percorso successivo nel passo.
Per accedere alla opzioni di riferimento della sintassi, fare clic sulla scheda Riferimento nella procedura guidata dell'espressione XPath.
Ogni procedura di posizionamento XPath si sposta lungo un asse da un nodo di contesto. Ad esempio, se viene selezionato elemento secondario come propria asse, l'espressione XPath cerca in tutti gli elementi secondari del nodo di contesto.
Asse | Posizione nella quale sono ricercati i nodi |
---|---|
ancestor:: | Il nodo principale e tutti i nodi dell'elemento che contiene il nodo del contesto. |
ancestor-or-self :: | Tutti i predecessori del nodo di contesto, come il nodo stesso. |
attribute:: | Tutti gli attributi del nodo di contesto. |
child:: | Tutti gli elementi secondari del nodo di contesto. I nodi attributo e spazio nome non sono
elementi secondari di tutti i nodi, sebbene questi dispongono di nodi principali. Questo è il valore predefinito. |
descendant:: | Tutti i nodi contenuti nel nodo di contesto, cioè tutti tutti gli elementi secondari o tutti gli elementi secondari degli elementi secondari e così via. Solo i nodi principali e dell'elemento hanno questi elementi discendenti. Come l'asse degli elementi secondari, l'asse degli elementi discendenti non contiene mai i nomi degli attributi e dello spazio nome. |
descendant-or-self:: | Tutti gli elementi discendenti del nodo di contesto o il nodo di contesto stesso. |
following:: | Tutti i nodi che iniziano dopo che termina il nodo di contesto, fatta eccezione per i nodi attributo e i nodi spazio nome. |
following-sibling:: | Tutti i nodi che seguono la fine del nodo di contesto ed hanno lo stesso nodo principale. I nodi attributi e spazio nome non hanno elementi di pari livello. |
namespace:: | Tutti gli spazi nome nell'ambito del nodo di contesto. |
parent:: | Il nodo dell'elemento o il nodo principale che contiene immediatamente il nodo di contesto. Solo il nodo principale non dispone di un nodo parent. |
preceding:: | Tutti i nodi che finiscono prima che inizi in nodo di contesto, fatta eccezione per i nodi dell'attributo e i nodi dello spazio nome. |
preceding-sibling:: | Tutti i nodi che precedono l'inizio del nodo di contesto ed hanno lo stesso nodo principale. I nodi attributi e spazio nome non hanno elementi di pari livello. |
self:: | Il nodo di contesto stesso. |
Ogni procedura di posizionamento ha almeno un'asse ed una verifica del nodo. La verifica del nodo rifinisce ulteriormente i nodi selezionati dalla procedura di posizionamento. Ad esempio, se viene specificato child:: comment( ) come procedura di posizione, l'espressione XPath restituisce tutti gli elementi secondati del nodo di commento del nodo di contesto.
Nodo | Ciò che restituisce |
---|---|
* | Seleziona tutti gli elementi, indipendentemente dal nome. Ad esempio, child::* seleziona tutti gli elementi secondari dell'elemento del nodo di contesto, e attribute::* seleziona tutti gli attributi del nodo di contesto. |
comment ( ) | Tutti i nodi di commento. |
node( ) | Tutti i nodi, indipendentemente dal tipo. |
processing-instruction ('destinazione' ) | Con nessun argomento, restituisce tutte le istruzioni di elaborazione. Con unadestinazione dell'argomento di stringa singola, questo seleziona tutte le istruzioni di elaborazione che hanno una destinazione specificata. |
text( ) | Tutti i nodi di testo. Ad esempio child::text() seleziona tutti gli elementi secondati del nodo di testo del nodo di contesto. |
Insieme di nodi
Operatore | Funzione |
---|---|
| | Questo è l'operatore di unione. Questo prende due insiemi di nodo e combina tutti i nodi insieme (dopo aver rimosso i nodi duplicati). |
/ | Seleziona tutti i nodi secondari. |
// | Selezionare i nodi discendenti. |
Booleano
Gli operatori booleani possono essere utilizzati per confrontare le espressioni di stringa o numeriche o i valori booleani.
Operatore | Restituzioni |
---|---|
<= | true se il valore della prima espressione numerica è inferiore o uguale al valore del secondo, altrimenti false. |
< | true se il valore della prima espressione numerica è inferiore al valore della seconda, altrimenti false. |
>= | true se il valore della prima espressione numerica è maggiore o uguale al valore del seconda, altrimenti false. |
> | true se il valore della prima espressione numerica è maggiore al valore del seconda, altrimenti false. |
= | True se entrambe le espressioni (stringa o numerica) hanno lo stesso valore, altrimenti false. |
!= | true se entrambe le espressioni (stringa o numerica) non hanno lo stesso valore, altrimenti false. |
e | True se entrambi i valori booleani sono true, altrimenti false. |
o | False solo se entrambi i valori sono false, altrimenti true. |
Numero
Questi operatori possono essere utilizzati per manipolare i valori numerici.
Operatore | Restituzioni |
---|---|
+ | La somma di due espressioni numeriche. |
- | La differenza della prima espressione numerica meno la seconda. |
* | Il prodotto delle due espressioni numeriche. |
div | La prima espressione numerica divisa per la seconda espressione. |
mod \ | La prima espressione numerica modulata nella seconda espressione (restituisce il remainder). |