c# - 从 InnerText 中删除注释行

标签 c# html-agility-pack

我目前正在使用下面的代码来提取 InnerText,但是,发生的情况是我被一堆 html 注释行 <-- 困住了。如何使用下面的代码删除它们?

HtmlWeb hwObject = new HtmlWeb();
HtmlAgilityPack.HtmlDocument htmldocObject = hwObject.Load(htmlURL);

foreach (var script in htmldocObject.DocumentNode.Descendants("script").ToArray())
    script.Remove();
HtmlNode body = htmldocObject.DocumentNode.SelectSingleNode("//body");
resultingHTML = body.InnerText.ToString();

最佳答案

只需通过注释节点过滤节点并对其调用删除即可。

var rootNode = doc.DocumentNode;
var query = rootNode.Descendants().OfType<HtmlCommentNode>().ToList();
foreach (var comment in query)
{
    comment.Remove();
}

关于c# - 从 InnerText 中删除注释行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106177/

相关文章:

c# - MS-Project 文件在任务栏上堆积

c# - 字符串的 System.FormatException

C#/.Net 使用 ThreadLocal 和 Async/Await

c# - aspnetcore web项目导入另一个项目的 Controller

c# - 如何使用 HTMLAgilityPack 写出解码后的 HTML?

c# - 让一个进程以一定的时间间隔运行另一个进程

c# - 使用 HTML Agility Pack 解析表格

.net - 适用于 .NET 2.0 的 Html 敏捷包

c# - 哪个是最好的 HTML 整洁包? HTML 敏捷包中是否有任何选项可以使 HTML 网页整洁?

c# - 检查标签的类型