在HtmlAgilityPack中刪除無用的TextNodes

c# html-agility-pack web-scraping

我正在使用HtmlAgilityPack抓取一些網站。問題是它似乎堅持在大多數地方插入TextNodes,這些地方要么是空的,要么只包含大量的\ n,空格和\ r。

當我計算childnodes時,它們往往會引起我的問題,因為firebug沒有顯示它們,但是HtmlAgilityPack會這樣做。

有沒有辦法告訴HtmlAgilityPack停止這樣做,或者至少清除這些文本節點? (我想保留有用的)。雖然我們在這裡,但評論和腳本標籤也是如此。

熱門答案

您可以使用以下擴展方法:

static class HtmlNodeExtensions
{
    public static List<HtmlNode> GetChildNodesDiscardingTextOnes(this HtmlNode node)
    {
        return node.ChildNodes.Where(n => n.NodeType != HtmlNodeType.Text).ToList();
    }
}

並稱之為:

List<HtmlNode> nodes = someNode.GetChildNodesDiscardingTextOnes();


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因