Как прокомментировать все теги скриптов в html-документе, используя пакет гибкости HTML

c# comments html-agility-pack

Вопрос

Я хотел бы прокомментировать все теги скриптов из 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 - удалить скрипт и стиль?



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow