XML e .NET - Ricercare una parola in un tag usando .NET

giovedì 03 maggio 2007 - 13.06

Simpz Profilo | Junior Member

Ciao a tutti,
ho un piccolo problema... vorrei cercare una parola (data in input da utente) in un tag xml per poi tirare fuori il file dove è contenuta quella parola. Qualcuno l'ha già fatto o mi può dare dritte su cosa posso usare (XPath o XSLT)?

Grazie a tutti

Simone

Wamba Profilo | Expert

Non ho capito devi fare una ricerca in ogni attributo di ogni tag di un gruppo di file xml?
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Simpz Profilo | Junior Member

nel contenuto di un tag particolare

Wamba Profilo | Expert

Io userei xpath è ben integrato nella libreria system.xml e la sintassi è molto semplice.
è supportato sia da xmlnode.selectsinglenode che xmlnode.selectnodes.
tipo in xml così:

<NodoRoot>
<Nodo Att="uno">
<Foglia Testo="pippo"></Foglia>
</Nodo>
<Nodo Att="uno">
<Foglia Testo="topolino"></Foglia>
<Foglia Testo="paperino"></Foglia>
</Nodo>
<Nodo Att="due">
<Foglia Testo="pluto"></Foglia>
<Foglia Testo="paperone"></Foglia>
<Foglia Testo="pippo"></Foglia>
</Nodo>
</NodoRoot>

se voglio trovare il primo pippo posso scrivere:
NodoRoot/Nodo[@Att="uno"]/Foglia[@Testo="pippo"]
che voul dire (leggendo da destra per praticità) trovami un nodo che si chiama foglia che ha un attributo Testo che valga "pippo", il nodo deve stare sotto un nodo che si chiama Nodo e che ha un attributo Att che deve valere Uno a sua volta il Nodo deve stare sotto NodoRoot

spero di non essere stato troppo confuso nella fretta.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Simpz Profilo | Junior Member

per gli attributi sei stato preciso, il punto è che io lo devo controllare nel contentuto del tag
<tag>contenuto...</tag>
per ora ho fatto un mezzo giro (un pò macchinoso) ma sembra funzionare.
Prendo l'xml, guardo ogni nodo e se trovo il nodo incriminato prendo il contenuto e lo metto in una stringa e uso il metodo
string.contains(string s)
che mi ritorna vero o falso le c'è la stringa s
Io volevo evitare di fare sto giro con usando direttamente l'xml e senza salvarmi nulla su una stringa d'appoggio

Wamba Profilo | Expert

prova con questa condizione Nodo[text()="Contenuto da cercare"].
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5