解析HTML字符串

S M*_*ran 10 .net html c# parsing

有没有办法解析.Net代码后面的HTML字符串,如DOM解析...

即GetElementByTagName("abc").GetElementByTagName("tag")

我有这个代码块...

private void LoadProfilePage()
{        
    string sURL;
    sURL = "http://www.abcd1234.com/abcd1234";

    WebRequest wrGETURL;
    wrGETURL = WebRequest.Create(sURL);

    //WebProxy myProxy = new WebProxy("myproxy",80);
    //myProxy.BypassProxyOnLocal = true;

    //wrGETURL.Proxy = WebProxy.GetDefaultProxy();

    Stream objStream;
    objStream = wrGETURL.GetResponse().GetResponseStream();

    if (objStream != null)
    {
        StreamReader objReader = new StreamReader(objStream);

        string sLine = objReader.ReadToEnd();

        if (String.IsNullOrEmpty(sLine) == false)
        {
            ....                   
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 10

您可以使用优秀的HTML Agility Pack.

这是一个敏捷的HTML解析器,它构建一个读/写DOM并支持普通的XPATH或XSLT(你实际上不需要理解XPATH或XSLT来使用它,不用担心......).它是一个.NET代码库,允许您解析"out of the web"HTML文件.解析器非常容忍"真实世界"格式错误的HTML.对象模型与提出System.Xml非常相似,但对于HTML文档(或流).


Mar*_*man 7

看看使用Html Agility Pack

使用示例:

 HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]")
 {
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);
 }
Run Code Online (Sandbox Code Playgroud)