我正在使用 html 敏捷包将我的 html 文档的内容读入字符串等。完成后,我想按类删除该内容中的 certian 元素,但是我遇到了一个问题.
我的 HTML 看起来像这样:
<div id="wrapper">
<div class="maincolumn" >
<div class="breadCrumbContainer">
<div class="breadCrumbs">
</div>
</div>
<div class="seo_list">
<div class="seo_head">Header</div>
</div>
Content goes here...
</div>
现在,我使用了一个 xpath 选择器来获取 中的所有内容,并像这样使用了 InnerHtml 属性:
node = doc.DocumentNode.SelectSingleNode("//div[@id='wrapper']");
if (node != null)
{
pageContent = node.InnerHtml;
}
从这一点来看,我想删除类为“breadCrumbContainer”的 div,但是当使用下面的代码时,我收到错误:“在集合中找不到节点”
node = doc.DocumentNode.SelectSingleNode("//div[@id='wrapper']");
node = node.RemoveChild(node.SelectSingleNode("//div[@class='breadCrumbContainer']"));
if (node != null)
{
pageContent = node.InnerHtml;
}
任何人都可以阐明这一点吗?我对 Xpath 很陌生,对 HtmlAgility 库也很陌生。
谢谢,
戴夫
最佳答案
因为 RemoveChild 只能移除直接子节点,不能移除孙子节点。试试这个:
HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@class='breadCrumbContainer']");
node.ParentNode.RemoveChild(node);
关于c# - 使用 HTMLAgilityPack c# 按类名删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218815/