Read specific div from HttpResponse

Kishan Gajjar picture Kishan Gajjar · Feb 22, 2011 · Viewed 13.1k times · Source

I am sending 1 httpWebRequest and reading the response. I am getting full page in the response. I want to get 1 div which is names ad Rate from the response. So how can I match that pattern?

My code is like:

    HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://www.domain.com/");
    HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
    Stream response = WebResp.GetResponseStream();
    StreamReader data = new StreamReader(response);
    string result = data.ReadToEnd();

I am getting response like:

<HTML><BODY><div id="rate">Todays rate 55 Rs.</div></BODY></HTML>

I want to read data of div rate. i.e. I should get Content "Todays rate 55 Rs."

So how can I make regex for this???

Answer

Kobi picture Kobi · Feb 22, 2011

The HTML Agility Pack can load and parse the file for you, no need for messy streams and responses:

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("http://jsbin.com/owobe3");
HtmlNode rateNode = doc.DocumentNode.SelectSingleNode("//div[@id='rate']");
string rate = rateNode.InnerText;