Html Agility Pack无法删除节点

时间:2015-01-28 16:41:03

标签: jquery html css asp.net html-agility-pack

我刚刚在我的asp.net项目中安装了Html Agility Pack,我可以使用它从网上的另一个网页中提取数据并显示它没有问题,但是我遇到了问题。基本上我选择了一个标题为id的div,在这个标题中,我知道有一个div,我想删除类名登录。所以这是我的代码

    //Get the div with the id of footer
    HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@id='header']");

    //Remove login div
    HtmlNode loginSection = node.SelectSingleNode("//div[@class='login']");

    node.RemoveChild(loginSection);

现在我设置了loginSection,它有一个值,所以我选择了一个存在的div,但是当我调用RemoveChild函数时,我得到了这个错误

Node "<div class="login"></div>" was not found in the collection

我已经在stackoverflow上查看了有关此问题的其他问题,我似乎无法找到修复程序。

1 个答案:

答案 0 :(得分:2)

我发现我需要首先选择父节点,然后选择我的loginSection节点,

这是我更新和工作的代码

    //Get the div with the id of footer
    HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@id='header']");

    //Remove login div
    HtmlNode loginSection = node.SelectSingleNode("//div[@class='login']");

    loginSection.ParentNode.RemoveChild(loginSection);