HtmlAgilityPack C#:删除带有所有孩子的节点

时间:2013-09-20 09:34:56

标签: c# html

我有html文档,我想删除" form"标记其所有子元素。

        var nodeCollection = doc.DocumentNode.SelectNodes(".//form");
        int attributeRemoveCount = 0;

        if (nodeCollection != null)
        {
            foreach (HtmlNode link in nodeCollection)
            {
                link.Remove();
            }
        }

我的html类似于

<form name="LPHitCountForm">
  <input type="hidden" name="LPHitCount" value="0">
</form>

以上代码只需删除&#34;&#34;这行来自html。 以下标签保持不变。 因此最终的html变为如下。

  <input type="hidden" name="LPHitCount" value="0">
</form>

我也尝试过RemoveAll功能但是没有用。 还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

此问题是由于对form和库中其他标记的特殊处理造成的。有关说明,请参阅this question and its answers

以下是解决此问题的快捷方法:

//Do this before using the library.
HtmlNode.ElementsFlags.Remove("form");