Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I have done this before, not with XML, but with data that needed to be parsed for state changes for an application. HttpWebResponse.GetResponseStream() method worked fine for this. Make sure to call Close() on this stream when you are done. I suggest a finally block.</p> <pre><code>HttpWebRequest req; try { req = (HttpWebRequest)WebRequest.Create("http://www.example.com"); Stream stream = req.GetResponseStream(); byte[] data = new byte[4096]; int read; while ((read = data.Read(data, 0, data.Length)) &gt; 0) { Process(data, read); } } finally { if (req != null) req.Close(); } </code></pre> <p>Or, alternatively:</p> <pre><code>HttpWebRequest req; try { req = (HttpWebRequest)WebRequest.Create("http://www.example.com"); Stream stream = req.GetResponseStream(); XmlTextReader reader = new XmlTextReader(stream); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: Console.Write("&lt;{0}&gt;", reader.Name); break; case XmlNodeType.Text: Console.Write(reader.Value); break; case XmlNodeType.CDATA: Console.Write("&lt;![CDATA[{0}]]&gt;", reader.Value); break; case XmlNodeType.ProcessingInstruction: Console.Write("&lt;?{0} {1}?&gt;", reader.Name, reader.Value); break; case XmlNodeType.Comment: Console.Write("&lt;!--{0}--&gt;", reader.Value); break; case XmlNodeType.XmlDeclaration: Console.Write("&lt;?xml version='1.0'?&gt;"); break; case XmlNodeType.Document: break; case XmlNodeType.DocumentType: Console.Write("&lt;!DOCTYPE {0} [{1}]", reader.Name, reader.Value); break; case XmlNodeType.EntityReference: Console.Write(reader.Name); break; case XmlNodeType.EndElement: Console.Write("&lt;/{0}&gt;", reader.Name); break; } } } finally { if (req != null) req.Close(); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload