Leggere il valore del nodo di un file XML

mercoledì 18 giugno 2008 - 16.09

4mane Profilo | Junior Member

Salve a tutti.
Ho il seguente problema.
Dovrei leggere il valore "Mario" dal seguente file XML:

<?xml version="1.0" ?> <Abbonato> <Nome>Mario</Nome> <Cognome>Rossi</Cognome> <Indirizzo Comune="Milano" CAP="20122" Nome="Via Garibaldi 25"></Indirizzo> </Abbonato>

In SQL ho caricato il file all'interno di una variable @StrXml di tipo XML, ed ho utilizzato i comandi .value() e .nodes() per leggere il contenuto. Non sò come, ma riesco a leggere gli attributi del tag "Indirizzo", ma non i valori degli elementi Nome e Cognome.

Grazie a tutti per la vs. collaborazione.

alx_81 Profilo | Guru

>Salve a tutti.
Ciao!

Osserva il seguente esempio:
USE tempdb; GO DECLARE @x xml SET @x = '<?xml version="1.0" ?> <Abbonato> <Nome>Mario</Nome> <Cognome>Rossi</Cognome> <Indirizzo Comune="Milano" CAP="20122" Nome="Via Garibaldi 25"></Indirizzo> </Abbonato>' SELECT Nome = @x.value('(/Abbonato/Nome)[1]','varchar(30)') SELECT Cognome = @x.value('(/Abbonato/Cognome)[1]','varchar(30)') SELECT Comune = @x.value('(/Abbonato/Indirizzo/@Comune)[1]','varchar(30)') SELECT CAP = @x.value('(/Abbonato/Indirizzo/@CAP)[1]','char(5)') SELECT Via = @x.value('(/Abbonato/Indirizzo/@Nome)[1]','varchar(30)')

>Grazie a tutti per la vs. collaborazione.
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

4mane Profilo | Junior Member

Grande Alessandro!
Grazie!

Però ora è sorto un altro problema: il file xml che devo processare contiene un namespace, e quando eseguo il codice che mi hai postato, mi ritorna un valore null.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Cosa si può fare?
Grazie di nuovo.

4mane Profilo | Junior Member

alx_81 Profilo | Guru

>
Ma il namespace è sull'intestazione??
Mettila sul primo tag, non su <? xml ... ?>

e poi, per aggiungere il namespace, prova questo script:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

4mane Profilo | Junior Member

Che dire...
MVPissimo!!!!

Grazie di nuovo!

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5