我使用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>
我该如何解决这个问题?
答案 0 :(得分:1)
几乎就在那里!你错过了
HtmlNode.ElementsFlags["p"] = HtmlElementFlag.Closed;
之前的document.LoadHtml("<p><div class=\"remove-it\"></div></p>");
。
这样做是在解析文档时自动关闭p
元素。