我正在使用HtmlAgilityPack抓取许多网站。问题在于,它似乎坚持要在大多数为空或仅包含\n,空白和\r的位置插入TextNode。

当我计算子节点时,它们会导致我出现问题,因为Firebug没有显示它们,而HtmlAgilityPack却显示了它们。

有没有办法告诉HtmlAgilityPack停止这样做,或者至少清除这些textnode? (尽管我想保留有用的)。当我们在这里时,Comment和Script标签也是一样。

最佳答案

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

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();

关于c# - 在HtmlAgilityPack中删除无用的TextNode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11340750/

10-12 04:19