4.2.1.4 - Funcions
XPath ofereix una gran quantitat de funcions destinades a manipular els resultats obtinguts.
Aquestes funcions es classifiquen en diferents grups:
-
Per manipular conjunts de nodes: es pot obtenir el nom dels nodes, treballar amb les posicions, comptar-los, etc.
-
Per treballar amb cadenes de caràcters: permeten extreure caràcters, concatenar, comparar… les cadenes de caràcters.
-
Per fer operacions numèriques: es poden convertir els resultats a valors numèrics, comptar els nodes, fer operacions, etc.
-
Funcions booleanes: permeten fer operacions booleanes amb els nodes.
-
Funcions per dates: permeten fer operacions diverses amb dates i hores.
És impossible especificar-les totes en aquestos apunts, de manera que el millor és consultar l’especificació XPath (http://www.w3.org/TR/xpath-functions) per veure quines funcions es poden fer servir.
Entre totes les funcions podem destacar les de la següent taula:
| Funció | Explicació |
|---|---|
| name() | Retorna el nom del node |
| sum() | Retorna la suma d’una seqüència de nodes o de valors |
| count() | Retorna el nombre de nodes que hi ha en una seqüència |
| avg() | Fa la mitjana dels valors de la seqüència |
| max() | Retorna el valor màxim de la seqüència |
| min() | Dóna el valor mínim de la seqüència |
| position() | Diu en quina posició es troba el node actual |
| last() | Retorna si el node actual és l’últim |
| distinct-values() | Retorna els elements de la seqüència sense duplicats |
| concat() | Uneix dues cadenes de caràcters |
| starts-with() | Retorna si la cadena comença amb els caràcters marcats |
| contains() | Ens diu si el resultat conté el valor |
| string-length() | Retorna la llargària de la cadena |
| substring() | Permet extraure una subcadena del resultat |
| string-join() | Uneix la seqüència amb el separador especificat |
| current-date() | Ens retornarà l’hora actual |
| not() | Inverteix el valors booleans |
Amb les funcions es podran fer peticions que retornen valors numèrics. Per exemple, “quants alumnes tenim?”:
que tornarà el nombre d'alumnes del fitxer
O bé retornar cadenes de caràcters. Per exemple, unir tots els noms, separant-los per una coma:
que tornarà en un únic resultat els noms separats per una coma:
També es poden posar les funcions en les condicions. Per exemple, aquesta expressió ens tornarà els alumnes amb el cognom que comence per B:
<nom>Bernat</nom>
<cognoms>Balaguer</cognoms>
<nota>3</nota>
</alumne>
En aquesta expressió volem obtenir el tercer alumne de la llista:
<nom>Joan</nom>
<cognoms>Centelles</cognoms>
<nota>8</nota>
</alumne>
Llicenciat sota la Llicència Creative Commons Reconeixement SenseObraDerivada 4.0