删除 html 敏捷包中的单亲子节点

Remove node of single child parent in html agility pack

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

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>

我该如何解决这个问题?

快到了!你不见了 HtmlNode.ElementsFlags["p"] = HtmlElementFlag.Closed;document.LoadHtml("<p><div class=\"remove-it\"></div></p>");.

之前

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