使用C#读取HTML文件的标签

时间:2010-10-27 20:30:52

标签: c# html

我需要使用C#获取HTML文件的body标签内的所有内容。有没有好的有效方法呢?

6 个答案:

答案 0 :(得分:8)

查看HTML Agility Pack以执行各种HTML操作

它为您提供了一个类似于XmlDocument XML处理界面的界面:

 HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");

 HtmlNode bodyNode = doc.DocumentNode.SelectSingleNode("/html/body");

 if(bodyNode != null)
 {
    // do something
 }

答案 1 :(得分:3)

您可以查看SgmlReaderHTML Agility Pack

答案 2 :(得分:1)

它很容易将页面代码拉入字符串,只需搜索字符串“< body”和字符串“< / body”的出现,然后只需做一些数学运算即可得到你的价值。 ..

答案 3 :(得分:1)

在没有HtmlAgility软件包的情况下使用C#将HTML结构读入HTML字符串并获取正文标签内容

       private void Button_Click(object sender, RoutedEventArgs e)
        {
            string filepath = @"C:\Users\Testing\Documents\sample1.txt";
            string htmlString = File.ReadAllText(filepath);
            string htmlTagPattern = "<.*?>";
            Regex oRegex = new Regex(".*?<body.*?>(.*?)</body>.*?", RegexOptions.Multiline);
            htmlString = oRegex.Replace(htmlString, string.Empty);
            htmlString = Regex.Replace(htmlString, htmlTagPattern, string.Empty);
            htmlString = Regex.Replace(htmlString, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
            htmlString = htmlString.Replace("&nbsp;", string.Empty);
        }

答案 4 :(得分:0)

如果碰巧是XHTML,那么你可以使用XPath。

答案 5 :(得分:0)

使用XML方法,XPath。使用HTML Agility pack进行更高级的操作。