2010-07-04 29 views

Respuesta

22

carga cadena:

string xml = new WebClient().DownloadString(url); 

luego cargar en XML:

XDocument doc = XDocument.Parse(xml); 

Por ejemplo:

[Test] 
public void TestSample() 
{ 
    string url = "http://www.dreamincode.net/forums/xml.php?showuser=1253"; 
    string xml; 
    using (var webClient = new WebClient()) 
    { 
     xml = webClient.DownloadString(url); 
    } 

    XDocument doc = XDocument.Parse(xml); 

    // in the result profile with id name is 'Nate' 
    string name = doc.XPathSelectElement("/ipb/profile[id='1253']/name").Value; 
    Assert.That(name, Is.EqualTo("Nate")); 
} 
+1

Me aparece un error que doc no tiene un método XPathSelectElement. ¿Qué podría estar haciendo mal? –

+2

@Sergio Tapia, es un método de extensión de LINQ XML: http://msdn.microsoft.com/en-us/library/bb156083.aspx Se necesita añadir 'usando System.Xml.Linq' a las importaciones. – Elisha

+2

también necesita 'using System.Xml.XPath;' – wisbucky

4

Usted puede utilizar la clase WebClient:

WebClient client = new WebClient(); 
Stream data = client.OpenRead ("http://example.com"); 
StreamReader reader = new StreamReader (data); 
string s = reader.ReadToEnd(); 
Console.WriteLine (s); 
data.Close(); 
reader.Close(); 

Aunque el uso de DownloadString es más fácil:

WebClient client = new WebClient(); 
string s = client.DownloadString("http://example.com"); 

Puede cargar la cadena resultante en un XmlDocument.

40

¿Por qué complicar las cosas? Esto funciona:

var xml = XDocument.Load("http://www.dreamincode.net/forums/xml.php?showuser=1253"); 
+0

¿Qué pasa con 'DownloadStringAsync'? ¿Es esa la mejor forma de manejar la descarga? – Ahmad

Cuestiones relacionadas