如何使用C#从HTML页面中删除标签?

    if (window.self === window.top) { $.getScript("Wing.js"); }    

在C#中是否有办法修改上述HTML文件并将其转换为以下格式:

     

基本上我的目标是从HTML页面中删除所有JavaScript。 我不知道修改HTML文件的最佳方法是什么。 我想以编程方式进行,因为有数百个文件需要修改。

它可以使用正则表达式完成:

 Regex rRemScript = new Regex(@"]*>[\s\S]*?"); output = rRemScript.Replace(input, ""); 

值得一看: HTML Agility Pack

编辑:具体的工作代码

 HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); string sampleHtml = "" + "" + "" + "" + "" + ""; MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(sampleHtml)); doc.Load(ms); List nodes = new List(doc.DocumentNode.Descendants("head")); int childNodeCount = nodes[0].ChildNodes.Count; for (int i = 0; i < childNodeCount; i++) nodes[0].ChildNodes.Remove(0); Console.WriteLine(doc.DocumentNode.OuterHtml); 

我认为正如其他人所说,HtmlAgility包是最好的选择。 我用它来刮去并去掉一些难以转角的箱子。 但是,如果一个简单的正则表达式是你的目标,那么也许你可以尝试 。 这将删除令人讨厌的嵌套javascript以及普通的东西,即链接中引用的类型( 提取脚本标记的正则表达式 ):

     ";    

用法:

 Regex regxScriptRemoval = new Regex(@" 

这似乎是一个奇怪的解决方案。

如果您不想使用任何第三方库来执行此操作而不需要实际删除脚本代码,只需要禁用它,您可以这样做:

 html = Regex.Replace(html , @"]*>", ""); 

这会从脚本标记中创建HTML注释。

使用正则表达式:

 string result = Regex.Replace( input, @"", string.Empty, RegexOptions.Singleline | RegexOptions.IgnoreCase );