将HTML文本转换为纯文本
本文关键字:文本 转换 HTML | 更新日期: 2023-09-27 18:29:26
我有一个文本区域。我允许输入html标记,因为任何html代码都可以输入。
现在我想在不使用第三方工具的情况下将html代码转换为纯文本。。。怎么做
目前我正在做如下:-
var desc = Convert.ToString(Html.Raw(Convert.ToString(drJob["Description"])));
drJob["Description"]是数据行,我从中获取描述,并希望将描述转换为纯文本。
.NET没有直接的方法可以做到这一点。您要么需要求助于像HtmlAgilePack这样的第三方工具,要么使用javascript。
document.getElementById('myTextContainer').innerText = document.getElementById('myMarkupContainer').innerText;
为了您的安全,不要使用正则表达式。(http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html)
您可以使用System.Text.RegularExpressions.Regex
将html标记替换为空字符串
String desc = Regex.Replace(drJob["Description"].ToString(), @"<[^>]*>", String.Empty);
您可以简单地使用regex"<[^>]+>"使用替换方法
using System.Text.RegularExpressions;
private void button1_Click(object sender, EventArgs e)
{
string sauce = htm.Text; // htm = your html box
Regex myRegex = new Regex(@"(?<=^|>)[^><]+?(?=<|$)", RegexOptions.Compiled);
foreach (Match iMatch in myRegex.Matches(sauce))
{
txt.AppendText(Environment.NewLine + iMatch.Value); //txt = your destination box
}
}
如果你需要更多的澄清,请告诉我。
[编辑:]请注意,这不是一个干净的函数,所以添加一行来清理空白或换行符。但是,从标记之间实际获取文本应该可以正常工作。如果你想节省空间,请使用regex,看看这是否适合你。尽管发布regex不干净的人是对的,但可能还有其他方法;Regex通常在从html中分离单个类型的标记时效果更好。(我用它作为雨量器来分析东西,从来没有遇到过任何问题)