Condividi tramite


Pattern

Un pattern è un tipo di espressione che restituisce un insieme di nodi basato su un insieme di condizioni per un nodo. I nodi che soddisfano le condizioni corrispondono al pattern. La sintassi per i pattern è un sottoinsieme della sintassi per le espressioni. In particolare, è possibile utilizzare come pattern i location path che soddisfano determinate restrizioni. Un'espressione che è allo stesso tempo un pattern restituisce sempre un oggetto di tipo set di nodi. Un nodo corrisponde a un pattern se tale nodo è incluso nel risultato della valutazione del pattern come espressione rispetto a un contesto possibile. I contesti possibili sono quelli in cui il nodo di contesto è il nodo per il quale esiste la corrispondenza con il pattern o un progenitore di tale nodo.

Nella tabella seguente sono elencati esempi di modelli.

Modello Corrispondenze

Para

qualsiasi elemento para

*

qualsiasi elemento

chapter|appendix

qualsiasi elemento chapter e appendix

olist/item

qualsiasi elemento item con un elemento padre olist

appendix//para

qualsiasi elemento para con un elemento progenitore appendix

/

il nodo radice

text()

qualsiasi nodo di tipo text

processing-instruction()

qualsiasi istruzione di elaborazione

node()

qualsiasi nodo diverso dal nodo Attribute e dal nodo radice

id("W11")

l'elemento con identificatore univoco W11

para[1]

qualsiasi elemento para che rappresenta il primo elemento figlio para del padre

*[position()=1 and self::para]

qualsiasi elemento para che rappresenta il primo elemento figlio del padre

para[last()=1]

qualsiasi elemento para che rappresenta l'unico elemento figlio para del padre

items/item[position()>1]

qualsiasi elemento item che dispone di un elemento padre items e che non corrisponde al primo elemento figlio item del padre

item[position() mod 2 = 1]

qualsiasi elemento item che rappresenta un elemento figlio item dispari dell'elemento padre

div[@class="appendix"]//p

qualsiasi elemento p con un elemento progenitore div che dispone di un attributo class con valore appendix

@class

qualsiasi attributo class (non qualsiasi elemento che dispone di un attributo class)

@*

qualsiasi attributo

Vedere anche

Riferimento

Location Path