Condividi tramite


Espressioni booleane, di confronto e set

I modelli del filtro possono contenere espressioni booleane, espressioni di confronto ed espressioni set. I collegamenti elencati nella tabella seguente rappresentano simboli alternativi forniti nell'implementazione XSL Transformations (XSLT). In questo documento vengono descritti gli operatori di espressione.

Operatore Descrizione

and

AND logico

or

OR logico

not()

Negazione

=

Uguaglianza

!=

Non uguaglianza

< *

Minore di

<= *

Minore o uguale a

> *

Maggiore di

<= *

Maggiore o uguale a

|

Operazione sugli insiemi. Restituisce l'unione di due set di nodi

* Metodo XPath esteso

La sintassi del World Wide Web Consortium (W3C) per le parole chiave operator utilizza spazi vuoti e altri separatori anziché il simbolo del dollaro ($) utilizzato nella versione 2.5. Nella sintassi W3C una parola chiave binary del modulo $xxx$ può essere espressa come wsxxxws, dove ws si riferisce a un terminatore token rappresentato da uno spazio vuoto, da virgolette singole (') o da virgolette doppie ("). Gli operatori unari come not() utilizzano la notazione di funzione. Sebbene l'implementazione Microsoft supporti entrambe le sintassi, è consigliabile utilizzare la sintassi W3C per garantire la compatibilità futura.

L'ordine di precedenza (dal maggiore al minore) per gli operatori di confronto e booleani viene visualizzato nella seguente tabella.

Precedenza Operatori Descrizione

1

( )

Raggruppamento

2

[ ]

Filtri

3

/

//

Operazioni di percorso

4

< or &lt;

<= or &lt;=

> or &gt;

>= or &gt;=

Confronti

5

=

!=

Confronti

6

|

Unione

7

not()

NOT booleano

8

And

AND booleano

9

Or

OR booleano

Quando gli operatori vengono utilizzati in un documento XML, come un foglio di stile XSLT, i token < e > devono essere in sequenza escape rispettivamente come &lt; e &gt;. Ad esempio, l'istruzione XSLT seguente richiama una regola di modello XSLT su tutti gli elementi <book> il cui elemento <price> ha un valore numerico inferiore o uguale a 10.

<xsl:apply-templates select="book[price &lt;= 10]"/>

Quando un'espressione XPath viene utilizzata con il DOM, gli operatori < e > non devono essere in sequenza escape. Ad esempio, l'istruzione JScript seguente seleziona tutti gli elementi <book> il cui elemento <price> ha un valore numerico inferiore o uguale a 10.

var cheap_books = dom.selectNodes("book[price <= 10]");

Le espressioni booleane possono corrispondere a tutti i nodi di un determinato valore o a tutti i nodi con nodi compresi in determinati intervalli. Di seguito viene riportato un esempio di espressione booleana che restituisce false.

1 &gt;= 2

Gli operatori distinguono tra maiuscole e minuscole.

AND logico e OR logico

Gli operatori booleani and e or eseguono rispettivamente operazioni di AND logico e di OR logico. Questi operatori, insieme alle parentesi di raggruppamento, possono essere utilizzati per costruire sofisticate espressioni logiche.

Esempi

Espressione Si riferisce a

author[degree and award]

Tutti gli elementi <author> che contengono almeno un elemento <degree> e almeno un elemento <award>.

author[(degree or award) and publication]

Tutti gli elementi <author> che contengono almeno un elemento <degree> oppure <award> e almeno un elemento <publication>.

NOT booleano

L'operatore not booleano nega il valore di un'espressione all'interno di un modello del filtro.

Esempi

Espressione Si riferisce a

author[degree and not(publication)]

Tutti gli elementi <author> che contengono almeno un elemento <degree> ma nessun elemento <publication>

author[not(degree or award) and publication]

Tutti gli elementi <author> che contengono almeno un elemento <publication> ma nessun elemento <degree> o <award>.

Esempio

File XML (test.xml)

File XSLT (test.xsl)

Il foglio di stile XSLT seguente seleziona tutti gli elementi <x> senza alcun attributo.

Output

La trasformazione, quando viene applicata al file XML precedente, restituisce il seguente risultato: