WebRequest e lettura XML

mercoledì 20 agosto 2008 - 16.08

stuzzo Profilo | Junior Member

Salve a tutti!
Vi chiedo di aiutarmi a risolvere questo problemino.....
A seguito di una chiamata a WebRequest, mi viene restituito una porzione di codice in XML, io devo leggere un nodo che mi indica l'andamento dell'operazione...ma come faccio?
io mi trovo in questa situazione:
System.Net.WebRequest reqPagina = System.Net.WebRequest.Create(url);
System.Net.WebResponse response = reqPagina.GetResponse();
System.IO.Stream StreamDati = response.GetResponseStream();
System.IO.StreamReader srrDati = new System.IO.StreamReader(StreamDati);

Quindi in srrDati ho la mia porzione di XML....
come devo fare?

Grazie a tutti in anticipo

alx_81 Profilo | Guru

>Salve a tutti!
Ciao!

>Vi chiedo di aiutarmi a risolvere questo problemino.....
>A seguito di una chiamata a WebRequest, mi viene restituito una
>porzione di codice in XML, io devo leggere un nodo che mi indica
>l'andamento dell'operazione...ma come faccio?
>io mi trovo in questa situazione:
>System.Net.WebRequest reqPagina = System.Net.WebRequest.Create(url);
>System.Net.WebResponse response = reqPagina.GetResponse();
>System.IO.Stream StreamDati = response.GetResponseStream();
>System.IO.StreamReader srrDati = new System.IO.StreamReader(StreamDati);
>Quindi in srrDati ho la mia porzione di XML....
Puoi passare lo stream della WebResponse (se è XML well formed) al metodo Load dell'oggetto XMLDocument:

XmlDocument xmlResponse = new XmlDocument(); xmlResponse.Load(response.GetResponseStream());

eccoti anche la reference:
XMLDocument.Load Method (Stream)
http://msdn.microsoft.com/en-us/library/e48zttz7.aspx

>Grazie a tutti in anticipo
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

stuzzo Profilo | Junior Member

ok, sto cercando di andare avanti...
adesso se faccio una cosa del tipo:
XmlNodeList xmlResponse = xmlResponse.GetElementsByTagName("Risposta");
string risposta = xmlResponse.Item(0).InnerText;

Facendo così riesco a prendere il valore contenuto nel nodo risposta?

Grazie :)

alx_81 Profilo | Guru

>ok, sto cercando di andare avanti...
>adesso se faccio una cosa del tipo:
>XmlNodeList xmlResponse = xmlResponse.GetElementsByTagName("Risposta");
>string risposta = xmlResponse.Item(0).InnerText;
>Facendo così riesco a prendere il valore contenuto nel nodo risposta?

Leggi bene le reference..
http://msdn.microsoft.com/en-us/library/system.xml.xmlnodelist.item.aspx

--

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

stuzzo Profilo | Junior Member

scusa prima ho sbagliato ... .InnerXml e non InnerText.

XmlElement root = xmlDoc.DocumentElement;
XmlNodeList xmlnode = root.GetElementsByTagName("Risposta");
string risposta = xmlnode.Item(0).InnerXml;

Quindi per trovare un nodo devo necessariamente passare per la radice per poi scendere fino al nodo interessato, giusto?



alx_81 Profilo | Guru

>scusa prima ho sbagliato ... .InnerXml e non InnerText.
>
>XmlElement root = xmlDoc.DocumentElement;
>XmlNodeList xmlnode = root.GetElementsByTagName("Risposta");
>string risposta = xmlnode.Item(0).InnerXml;
>
>Quindi per trovare un nodo devo necessariamente passare per la
>radice per poi scendere fino al nodo interessato, giusto?
No, puoi usare XPATH..

XmlNode.SelectNode Method (String)
http://msdn.microsoft.com/it-it/library/hcebdtae(VS.80).aspx

con una query xpath puoi scendere nel documento XML per raggiungere un nodo o un insieme di nodi in particolare.
Ecco le specifiche:

http://en.wikipedia.org/wiki/XPath
--

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

stuzzo Profilo | Junior Member

Grazie mille, alla prossima :)
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