gpt4 book ai didi

c# - Html Agility Pack - 按 ID 或类删除标签

转载 作者:行者123 更新时间:2023-11-30 14:14:44 25 4
gpt4 key购买 nike

这是我简化的 HTML:

<html>
<body>
<div id="mainDiv">
<div id="divToRemove"></div>
<div id="divToKeep"></div>
<div class="divToRemove"></div>
<div class="divToRemove"></div>
</div>
</body>
</html>

我想删除 ID 或类名为“divToRemove”的 div然后我只想选择名为“mainDiv”的 div(在 HtmlNode 中)。

结果应该是:

   <div id="mainDiv">
<div id="divToKeep"></div>
</div>

我如何使用 Html Agility Pack 做到这一点?

谢谢!

最佳答案

以下代码改编自this Html Agility Pack forum page以满足您的需求。本质上,我们将获取所有 div,然后遍历它们并检查它们的类或它们的 id 是否匹配。如果存在,请将其删除。

var divs = htmldoc.DocumentNode.SelectNodes("//div");
if (divs != null)
{
foreach (var tag in divs)
{
if (tag.Attributes["class"] != null && string.Compare(tag.Attributes["class"].Value, "divToRemove", StringComparison.InvariantCultureIgnoreCase) == 0)
{
tag.Remove();
} else if(tag.Attributes["id"] != null && string.Compare(tag.Attributes["id"].Value, "divToRemove", StringComparison.InvariantCultureIgnoreCase) == 0) {
tag.Remove();
}
}
}

您也可以将这些 if 语句组合成一个大的 if 语句,但我认为这更适合作为答案。

最后,选择您要查找的节点...

var mainDiv = htmldoc.DocumentNode.SelectSingleNode("//div[@id='mainDiv']");

关于c# - Html Agility Pack - 按 ID 或类删除标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com