在html敏捷包中删除单个子父节点

时间:2017-02-21 15:50:00

标签: c# .net html-agility-pack

我使用Html Agility Pack(1.4.9.5)删除指定类中的节点:

var document = new HtmlDocument();
document.LoadHtml("<p><div class=\"remove-it\"></div></p>");

var nodesToRemove = document.QuerySelectorAll(".remove-it");
if (nodesToRemove != null)
{
    foreach (var node in nodesToRemove)
    {
        node.Remove();
    }
}

var res = document.DocumentNode.OuterHtml;

问题是最后res等于:

<p>

但它应该是:

<p></p>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

几乎就在那里!你错过了 HtmlNode.ElementsFlags["p"] = HtmlElementFlag.Closed;之前的document.LoadHtml("<p><div class=\"remove-it\"></div></p>");

这样做是在解析文档时自动关闭p元素。