2013-08-17 33 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