Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Web Services, XML
Inserire tag XML in un'espressione XPath
mercoledì 05 luglio 2006 - 15.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Sidur
Profilo
| Newbie
2
messaggi | Data Invio:
mer 5 lug 2006 - 15:09
Ciao a tutti, sto costruendo una query in XQuery che parte da un'interrogazione formulata in XML.
Mi spiego meglio:
1. L'utente invia un file XML come se fosse un'interrogazione
2. XQuery interpreta l'interrogazione e interroga il database XML
3. Restituisce parte dei file XML contenenti i tag dell'interrogazione
A questo punto ho costruito una funzione che riceve dai parametri l'interrogazione, ma nel momento in cui utilizzo il parametro attuale per interrogare con XPath, mi da un problema.
Siccome devo inserire la variabile come opzione e non come spostamento del nodo contestuale, il motore interpreta in modo errato e non restituisce i risultati corretti. Se invece la inserisco come spostamento del nodo contestuale allora funziona.
Cioè:
for $d in doc("blabla.xml")//tag/tag2/$parametroattuale <--- questo funziona
for $d in doc("blabla.xml")//tag/tag2[$parametroattuale] <--- questo NON funziona
In pratica è come se inserissi tag XML nell'espressione XPath:
for $d in doc("blabla.xml")//tag/tag2/<taginviato><taginviato2>A</taginviato2></taginviato>
(che funziona)
oppure
for $d in doc("blabla.xml")//tag/tag2[<taginviato><taginviato2>A</taginviato2></taginviato>]
(che NON funziona)
Come posso risolvere questo problema? Grazie mille
Sidur
Profilo
| Newbie
2
messaggi | Data Invio:
mer 5 lug 2006 - 16:56
No, non sto usando .NET.
Sto programmando la query in XQuery. Poi la invierò al database XML attraverso PHP.
Comunque se non sbaglio anche in XQuery esistono funzioni stringbuilder. Ma non vedo come potrei utilizzarla.
for $d in doc("blabla.xml")//tag/tag2[$input/tag1[position()=1]]
Qui il problema sta proprio nel fatto che io ho bisogno del tag2 che abbia al sue interno i figli specificati da $input (cioè il primo tag1 e figli). Una normale espressione XPath.
Il problema è che $input è fatto così
<input>
<tag1><tag2>2</tag2></tag1>
<tag1><tag2>3</tag2></tag1>
</input>
e se lo inserisco come opzione (cioè quello che mi serve) come ho fatto sopra, non so perché, ma non va.
Come posso aggirare il problema?
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !