
Java
使用.NET从HTML页面中删除/剥离JavaScript和CSS代码块
在现代Web开发中,JavaScript和CSS是不可或缺的一部分。然而,有时我们可能需要从HTML页面中删除或剥离这些代码块,以便进一步处理或提取页面的其他内容。在本文中,我们将探讨如何使用.NET来实现这一目标。案例代码首先,让我们看一个简单的HTML页面示例,其中包含一些JavaScript和CSS代码块:html<!DOCTYPE html><html><head> <title>示例页面</title> <style> body { background-color: lightblue; } </style> <script> function sayHello() { alert("Hello!"); } </script></head><body> <h1>Welcome!</h1> <button onclick="sayHello()">Say Hello</button></body></html>我们的目标是从上面的HTML页面中删除或剥离掉JavaScript和CSS代码块,只保留纯粹的HTML内容。删除JavaScript代码块要删除JavaScript代码块,我们可以使用.NET的正则表达式功能。以下是一个示例代码,演示了如何使用C#来删除JavaScript代码块:csharpusing System;using System.Text.RegularExpressions;public class Program{ public static void MAIn() { string html = @"<!DOCTYPE html> <html> <head> <title>示例页面</title> <style> body { background-color: lightblue; } </style> <script> function sayHello() { alert('Hello!'); } </script> </head> <body> <h1>Welcome!</h1> <button onclick='sayHello()'>Say Hello</button> </body> </html>"; string pattern = @"<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>"; string result = RegEx.Replace(html, pattern, string.Empty); Console.WriteLine(result); }}上面的代码使用了一个正则表达式模式来匹配包含JavaScript代码块的标签,并使用空字符串替换掉这些代码块。运行上述代码,将输出不包含JavaScript代码块的HTML内容。剥离CSS代码块要剥离CSS代码块,我们可以使用.NET的HTML解析功能。以下是一个示例代码,演示了如何使用C#来剥离CSS代码块:csharpusing System;using System.Text;using System.IO;using System.Text.RegularExpressions;using HtmlAgilityPack;public class Program{ public static void MAIn() { string html = @"<!DOCTYPE html> <html> <head> <title>示例页面</title> <style> body { background-color: lightblue; } </style> <script> function sayHello() { alert('Hello!'); } </script> </head> <body> <h1>Welcome!</h1> <button onclick='sayHello()'>Say Hello</button> </body> </html>"; HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); StringBuilder result = new StringBuilder(); foreach (var node in doc.DocumentNode.DescendantsAndSelf()) { if (node.Name == "style") { string CSS = node.InnerText.Trim(); result.AppendLine(CSS); } else { result.AppendLine(node.OuterHtml); } } Console.WriteLine(result.ToString()); }}上述代码使用了HtmlAgilityPack库来解析HTML内容,并使用StringBuilder来构建剥离了CSS代码块的结果。运行上述代码,将输出不包含CSS代码块的HTML内容。通过使用.NET的正则表达式和HTML解析功能,我们可以方便地从HTML页面中删除或剥离JavaScript和CSS代码块。这对于需要进一步处理或提取页面内容的情况非常有用。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号