Modelli (XSLT)
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.
Criterio |
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 |