2013-08-17 35 views
0

使用HTMLAgilityPack for C#,我将如何处理从不是来自<h1-6>的HTML中获取内部文本。我不想使用正则表达式,而是使用HTMLAgilityPack。从HTML中获取不是来自标题的内部文本

我目前的做法:

var document = new HtmlDocument(); 
document.LoadHtml (text); 
text = document.DocumentNode.SelectSingleNode ("//body").InnerText; 

有大范围的文本时,这有问题,完全不是那么回事。最好删除标题标签,然后抓住内部文本。

谢谢!

回答

2

只是删除不需要的标签,然后得到body.innerText:

string[] tagsToRemove = { "h1", "h2", "h3", h4", "h5", "h6" }; 
List<string> tagsToRemoveList = tagsToRemove.ToList(); 
doc.DocumentNode.Descendants() 
    .Where(n => tagsToRemoveList.Contains(n..Name.ToLowerCase())) 
    .ToList() 
    .ForEach(n => n.Remove()); 
+1

这是一个伟大的,简单的方法来此。欣赏它! – pierceboggan