在 C# 中从字符串中删除 HTML 标记
在这篇文章中,我们将演示如何在不知道其中包含哪些标签的情况下从字符串中删除所有 HTML 标签。
有很多方法可以完成这项任务,但没有一种方法可以保证你删除所有标签。我们将看看它的一些方法。
在 C#
中使用正则表达式从字符串中删除 HTML 标签
public static string StripHTML(string input) {
return Regex.Replace(input, "<[a-zA-Z/].*?>", String.Empty);
}
这个函数传递一个字符串参数,我们使用 regex
的 Replace()
函数来删除标签,因为标签的签名在函数输入中给出。
它不适用于所有情况,但大多数情况都很好。你将需要编写算法以从字符串输入中删除所有标签。
在 C#
中使用 HTML Agility Pack 从字符串中删除 HTML 标签
另一种解决方案是使用 HTML Agility Pack。
internal static string RmvTags(string d) {
if (string.IsNullOrEmpty(d))
return string.Empty;
var doc = new HtmlDocument();
doc.LoadHtml(d);
var accTags = new String[] { "strong", "em", "u" };
var n = new Queue<HtmlNode>(doc.DocumentNode.SelectNodes("./*|./text()"));
while (n.Count > 0) {
var no = nodes.Dequeue();
var pNo = no.ParentNode;
if (!accTags.Contains(no.Name) && no.Name != "#text") {
var cNo = no.SelectNodes("./*|./text()");
if (cNo != null) {
foreach (var c in cNo) {
n.Enqueue(c);
pNo.InsertBefore(c, no);
}
}
pNo.RemoveChild(no);
}
}
return doc.DocumentNode.InnerHtml;
}
除了 strong
、em
、u
和原始文本节点之外,这将正常工作。此函数将字符串作为 d
变量中的参数。
if(string.IsNullOrEmpty(d))
行检查字符串是否已经为空,然后返回空字符串。
var doc = new HtmlDocument();
doc.LoadHtml(d);
这些语句创建一个新的 HTML 文档并将数据加载到文档中。它已经是一个 HTML 标记字符串,并且将遵循 HTML 模式。
var accTags = new String[] { "strong", "em", "u"};
行告诉哪些标签是允许的。你可以根据需要更改、添加或删除标签。
然后在 while
循环中,它使用队列添加所有文档节点,使每个节点出列,并删除 HTML 标记。
该过程继续进行,直到所有数据都被净化,然后它返回 HTML 文档的内部 HTML,它已经是净化的文本。
如前所述,没有硬性规定或方法来完成这项任务。有多种方法,没有一种方法是完全可靠的。
此代码已针对低数据集进行了测试。我们永远不能相信用户的输入。
相关文章
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:198 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:171 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:187 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中发出 HTTP POST Web 请求
发布时间:2024/02/04 浏览次数:131 分类:编程语言
-
在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求
在 C# 中运行命令提示符命令
发布时间:2024/02/04 浏览次数:130 分类:编程语言
-
Process 类可用于在 C# 中运行命令提示符命令。在 C# 中使用 Process.Start() 函数运行命令提示符命令
在 C# 中调整图像大小
发布时间:2024/02/04 浏览次数:203 分类:编程语言
-
有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保
在 C# 中下载图片
发布时间:2024/02/04 浏览次数:138 分类:编程语言
-
有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据
在 C# 中使用秒表
发布时间:2024/02/04 浏览次数:139 分类:编程语言
-
我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。
在 C# 中获取可执行路径
发布时间:2024/02/04 浏览次数:200 分类:编程语言
-
有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径