2011-07-08 8 views
3

HtmlDocumentからすべてのスクリプトタグをコメントアウトします。このようにしてドキュメントをレンダリングするとスクリプトは実行されませんが、そこに何があったかはまだわかります。残念ながら、私の現在のアプローチが失敗している:私は、HTML上の機能を置き換えるが、私はそれはのように堅牢になるとは思わない使用してこれを行うことができますHTMLアジリティパックを使用してHTML文書内のすべてのスクリプトタグをコメントアウトする方法

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(); 
      } 

注:

domHtml = domHtml.Replace("<script", "<!-- <script"); 
domHtml = domHtml.Replace("</script>", "</script> -->"); 
+0

言語属性をブラウザが理解できないものに変更するのはどうですか? – sisve

答えて

5

これを試してみてください。

foreach (var scriptTag in htmlDocument.DocumentNode.SelectNodes("//script")) 
     { 
      var commentedScript = HtmlTextNode.CreateNode(string.Format("<!--{0}-->", scriptTag.OuterHtml)); 
      scriptTag.ParentNode.ReplaceChild(commentedScript, scriptTag); 
     } 
+0

は魅力的に働いた! – Zugwalt

関連する問題