PDA

View Full Version : [XQuery] "Splittare" una stringa


Gremo
03-03-2008, 18:10
Avrei bisogno di un aiuto con XQuery.

problema: controllare se una stringa possiede una parola che inizia per "A"

L'approccio sarebbe quello di "splittare" la stringa per poter iterare su ogni parola contenuta (separate da uno spazio) e controllare se inizia per quel determinato carattere.

Non ho proprio idea se si possa fare e come :(

tæo
05-03-2008, 22:12
in realtà è molto più semplice, basta usare la funzione starts-with(...) unita alla tokenize(...)

es.


for $x in tokenize(//Nodo/Che/Ti/Interessa, "/s+")
where starts-with($x, 'A')
return <match>{$x}</match>


dove "/s+" è l'espressione regolare che indica uno (o più) spazi

[1] Riferimento (http://www.xqueryfunctions.com/xq/fn_starts-with.html)
[2] Riferimento (http://www.xqueryfunctions.com/xq/fn_tokenize.html)



EDIT:

oppure puoi usare un metodo meno elegante (ammesso che il primo lo sia), usando la solita starts-with(//Nodo, 'A') unita tramite or ad una contains(//Nodo, ' A')

nota che nella contains viene richiesta la presenza di "<spazio>A"

Gremo
06-03-2008, 16:40
ciao,
grazie mille della soluzione, anche se ho qualche problema con l'espressione regolare:

EDIT

nell'espressione si deve usare il backslash.

tæo
06-03-2008, 17:25
è vero, scusa :doh: