Я хотел бы прокомментировать все теги скриптов из HtmlDocument. Таким образом, когда я визуализую документ, сценарии не выполняются, но мы все еще можем видеть, что там было. К сожалению, мой нынешний подход терпит неудачу:
foreach (var scriptTag in htmlDocument.DocumentNode.SelectNodes("//script"))
{
var commentedScript = new HtmlNode(HtmlNodeType.Comment, htmlDocument, 0) { InnerHtml = scriptTag.ToString() };
scriptTag.ParentNode.AppendChild(commentedScript);
scriptTag.Remove();
}
Обратите внимание, что я могу сделать это, используя функции замены на html, но я не думаю, что это было бы так же хорошо:
domHtml = domHtml.Replace("<script", "<!-- <script");
domHtml = domHtml.Replace("</script>", "</script> -->");
Попробуй это:
foreach (var scriptTag in htmlDocument.DocumentNode.SelectNodes("//script"))
{
var commentedScript = HtmlTextNode.CreateNode(string.Format("<!--{0}-->", scriptTag.OuterHtml));
scriptTag.ParentNode.ReplaceChild(commentedScript, scriptTag);
}
Обратитесь к этому SO post - очень чистому решению, использующему поддержку запросов Linq для HTML Agility Pack: htmlagilitypack - удалить скрипт и стиль?