Share |

venerdì 28 maggio 2010

XPath: Operatori e Selezioni

Il linguaggio di selezione XPath, utile per filtrare i dati presenti in files XML, offre un'ampia lista di operatori per poter eseguire selezioni mirate di dati XML.

Il risultato di una selezione, o espressione, XPath apparterrà necessariamente ad una delle tipologie di dati XML elencate di seguito:

  • Node-Set: un insieme di nodi;
  • String: un testo;
  • Boolean: true or false, vero o falso;
  • Number: un numero;

Come detto in apertura di articolo, XPath fornisce un ricco set di operatori per poter filtrare un documento XML in modo molto selettivo.
La tabella riassuntiva sotto esposta elenca tutti gli operatori XPath con il relativo modo di utilizzo all'interno di fogli di stile XSL(o XSLT), dove in alcuni casi è necessario trasformare gli operatori nelle rispettive entità.

Il file utilizzato per gli esempi è serra.xml .

Elenco degli Operatori XPath con esempi.
OperatoreDescrizioneEsempioRisultatoEspr. XSL
|Trova due o più node-set//pianta | //vasoRestituisce node-set con tutti gli elementi <pianta> e <vaso>|
+Esegue una somma3 + 25+
-Esegue una sottrazione3 - 21-
xEsegue una moltiplicazione3 x 26x
divEsegue una divisione6 div 23div
=Esegue un confronto di uguaglianzanome = 'felce'true se //pianta/nome è 'felce', altrimenti false=
!=Esegue un confronto di disuguaglianzanome != 'felce'false se //pianta/nome è 'felce', altrimenti true!=
<Esegue un confronto per Minore diprezzo < 5true se prezzo è minore di 5, altrimenti false&lt;
<=Esegue un confronto per Minore o Uguale aprezzo <= 5true se prezzo è minore o uguale a 5, altrimenti false&lt;=
>Esegue un confronto per Maggiore diprezzo > 5true se prezzo è maggiore di 5, altrimenti false&gt;
>=Esegue un confronto per Maggiore o uguale aprezzo >= 5true se prezzo è maggiore o uguale a 5, altrimenti false&gt;=
orEsegue un confronto con OR logiconome = apos;felce' or nome = 'rosa'true se //pianta/nome è 'felce' o 'rosa', altrimenti falseor
andEsegue un confronto con AND logiconome != 'felce' and nome != 'rosa'true se //pianta/nome non è ne 'felce' ne 'rosa', altrimenti falseand
modResto di divisione o Modulo6 mod 42, ovvero il resto della divisione 6/4mod

Quando si utilizzano gli operatori è importante ricordarsi che la sintassi del linguaggio XPath è case-sensitive, ovvero che ciò che è scritto in minuscolo é considerato differente da ciò che è scritto in maiuscolo.

Personalmente, trovo che l'utilizzo di tali operatori sia necessario per poter esporre dati XML tramite fogli di stile XSLT.

Alla prossima, MA.

0 commenti:

Posta un commento

Non ti è chiaro qualcosa?
No problem, posta il tuo dubbio ;)

..... e ricordati di firmarlo!