【问题标题】:Html Agility Pack can't remove nodeHtml Agility Pack 无法删除节点
【发布时间】:2015-01-28 16:41:02
【问题描述】:

我刚刚将 Html Agility Pack 安装到我的 asp.net 项目中,我可以使用它从网络上的另一个网页中提取数据并毫无问题地显示它,但是我遇到了问题。基本上我已经选择了一个 id 为 header 的 div,在这个 header 中我知道有一个我想删除的类名 login 的 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 上查看了有关此问题的其他问题,但似乎找不到解决方法。

【问题讨论】:

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


    【解决方案1】:

    我发现我需要先选择父节点,然后再选择我的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);
    

    【讨论】:

    • 我刚想说这真的是孩子,但这可以解释。
    猜你喜欢
    • 2018-06-13
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多