Filtri e modelli del filtro

È possibile applicare vincoli e diramazioni a qualsiasi insieme aggiungendo una clausola di filtro, [pattern], all'insieme. Il filtro è analogo alla clausola WHERE di SQL. Contiene un modello denominato modello del filtro. Il modello del filtro restituisce un valore booleano e viene verificato per ogni elemento nell'insieme. Qualsiasi elemento nell'insieme che non supera la verifica del modello del filtro viene omesso dall'insieme dei risultati.

Per comodità, nel caso in cui un insieme si trovi all'interno del filtro, viene generato un valore booleano TRUE se l'insieme contiene membri e un valore FALSE se l'insieme è vuoto. Un'espressione come author/degree implica una conversione da insieme a valore booleano che restituisce TRUE se esiste un elemento <author> con un elemento figlio denominato <degree>.

Notare che può essere presente qualsiasi numero di filtri a un livello specifico di un'espressione. I filtri vuoti non sono consentiti.

I filtri sono sempre valutati in relazione a un contesto. In altri termini, l'espressione book[author] significa che viene verificato se ogni elemento <book> rilevato possiede un elemento figlio <author>. Analogamente, l'espressione book[author = 'Bob'] significa che viene verificato se ogni elemento <book> rilevato possiede un elemento figlio <author> con il valore Bob. È possibile esaminare il valore del contesto anche utilizzando il carattere punto (.) . Ad esempio, book[. = 'Trenton'] significa che viene verificato se il valore di ogni libro rilevato nel contesto corrente è Trenton.

Esempi

Espressione Si riferisce a

book[excerpt]

Tutti gli elementi <book> che contengono almeno un elemento figlio <excerpt>.

book[excerpt]/title

Tutti gli elementi <title> all'interno di elementi <book> che contengono almeno un elemento <excerpt>.

book[excerpt]/author[degree]

Tutti gli elementi <author> che contengono almeno un elemento <degree> e si trovano all'interno di elementi <book> che contengono almeno un elemento <excerpt>.

book[author/degree]

Tutti gli elementi <book> che contengono almeno un elemento <author> con almeno un elemento figlio <degree>.

book[excerpt][title]

Tutti gli elementi <book> che contengono almeno un elemento <excerpt> e almeno un elemento <title>.

Vedere anche

Riferimento

Esempi XPath

Concetti

File XML di esempio per la sintassi di XPath (inventory.xml)