我将使用html agility pack来读取我的html文档内容并转换为字符串等。完成后,我想通过它们的类删除该内容中的某些元素,但是我遇到了一些问题。
我的Html看起来像这样:
从这个角度来看,我想要删除类名为“breadCrumbContainer”的div。然而,当我使用以下代码时,会出现错误:“在集合中未找到节点“””。
我的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选择器来获取所有在 <div> 标签内的内容,并使用 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库更是一窍不通。
谢谢!
Dave
"//div"
将始终从根节点开始搜索,而不是从当前节点开始。请尝试使用".//div"
代替。 - Hans Kesting