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
ASP.NET 1.0/1.1
Select Elementi Xml
giovedì 13 ottobre 2005 - 12.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
gio 13 ott 2005 - 12:50
Ciao a tutti espongo brevemente il mio problema sperando che qualcuno conosca la risposta ...
Ho un file xml simile a questo
<?xml version="1.0" encoding="utf-8" ?>
<Nodo1>
<Utente Id="Admin">
<Id>Temp</Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
</Utente>
</Nodo1>
Carico ovviamente il file così
doc.Load(Path)
E cerco il nodo che corrisponde ad un valore così
Dim xmlnode As XmlNode = doc.ChildNodes(1).SelectSingleNode("Utente[@Id='Admin']")
Fin Qui tutto ok ora il problema è se volessi cercare non per l'attributo del nodo ma per il valore contenuto in un SottoNodo di utenti???
perciò una cosa simile a questa
dim xmlnode as xmlnode = doc.childnodes(1).SelectSingleNode("Utente") dove il valore del Nodo Id = 'Temp'
Qualcuno sa come cercare nei valori del nodo?
Ovviamente escludendo un ciclo dove controllo il valore a mano :-)
Grazie a chiunque risponda
ciao ciao
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 13 ott 2005 - 13:16
ciao,
prova ad usare XPathNavigator che con la sintassi XQuery (non proprio facilissima ma efficace) puoi ricerare dati all'interno di documenti xml.
si mostra come fare qui:
http://support.microsoft.com/default.aspx?scid=kb%3Bit%3BI301220
poi ovviamente' ti serve la sintassi per i filtri,1 buon punto di partenza puo essere (e come senno' :-) w3.org:
http://www.w3.org/XML/Query/
Capito 1po come funziona, lo troverai molto utile anche in futuro...
ciao
Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
gio 13 ott 2005 - 13:22
Ti ringrazio per la risposta mi butto subito sulla lettura ...
Ciao Ciao
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 13 ott 2005 - 13:27
Ciao unodidue,
con un file di questo tipo:
<nodi>
<Utente Id="Admin">
<Id>Temp</Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
</Utente>
<Utente Id="Admin">
<Id>Cocca</Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
</Utente>
<Utente Id="Admin">
<Id>Cocca</Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
</Utente>
</nodi>
puoi usare questa query XPATH:
/nodi/Utente[Id="Admin"]
per avere tutti i nodi in cui il contenuto del nodo Utente è Admin.
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
gio 13 ott 2005 - 14:43
eh si David ha ragione Coach cmq dovo aver letto un pò di materiale sono giunto alla conclusione quasi ovvia :-) che il mio xml è meglio strutturarlo in altra maniera.
e cio passare da un nodo fatto in questo modo ...
<Utente Id='Admin'>
<Id>Temp</Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
</Utente>
ad uno fatto così ...
<Utente Id='Admin'>
<Id Id='Temp'></Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
</Utente>
Però rimane il dubbio anche perchè il materiale da leggere è tanto e ancora non ho trovato nessuno che ne parla ... Vabbè per il momento metto una "toppa" così che già sono in ritardo con la consegna ... in futuro si vedrà ...
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
gio 13 ott 2005 - 15:31
ohhhh ora iniziamo a ragionare l'ho provato funziona ed è proprio quello che cercavo .
.. se non ti conoscessi direi proprio che sembri un tipo forte, però visto che ti ho insegnato quasi tutto io :-)
... vabbè dai vorrà dire che stasera evito di murarti qualche schiacciata però non ci prendere gusto eh?
ciao e grazie a tutti ...
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
gio 13 ott 2005 - 15:53
Vi posto questo ultimo messaggio per chiudere il discorso dopo qualche prova che ho fatto, magari può essere d'aiuto a qualcun'altro ...
File XMl a disposizione
<?xml version="1.0" encoding="utf-8" ?>
<Ricerche>
<Utente Id='Admin'>
<Id Id='Temp'></Id>
<NumeroConto>Prova</NumeroConto>
<DataOra0></DataOra0>
<DataOra1></DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
<sort></sort>
<order></order>
</Utente>
<Utente Id="2">
<Id Id='1'></Id>
<NumeroConto></NumeroConto>
<DataOra0></DataOra0>
<DataOra1>Prova</DataOra1>
<SwStato0></SwStato0>
<SwStato1></SwStato1>
<sort></sort>
<order></order>
</Utente>
</Ricerche>
allora usando questi tre comandi ecco ciò che esce fuori ...
doc.ChildNodes(1).SelectSingleNode("Utente/Id[.='Prova']")
Questo comando riporta il nodo <ID> del primo Nodo quello con Utente Admin
doc.ChildNodes(1).SelectSingleNode("Utente[.='Prova']")
Questo comando riporta il nodo <UTENTE> che ha come valore all'interno del suo nodo o di un suo sottonodo il valore "Prova"
doc.ChildNodes(1).SelectSingleNode("Utente[./DataOra1='Prova']")
Infine questo comando (che effettivamente è quello che serviva a me) ...
in questo caso viene riportato il primo nodo <UTENTE> rintracciato che ha come valore nel campo DataOra1 il valore Prova ...
bhe questo è tutto spero vi sia utile .. io l'utilità l'ho trovata e ho risolto un paio di cosette che non mi andava di risolvere con il db ...
ciao a tutti di nuovo grazie
Francesco
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 !