将HTML文本转换为纯文本

本文关键字:文本 转换 HTML | 更新日期: 2023-09-27 18:29:26

我有一个文本区域。我允许输入html标记,因为任何html代码都可以输入。

现在我想在不使用第三方工具的情况下将html代码转换为纯文本。。。怎么做

目前我正在做如下:-

var desc = Convert.ToString(Html.Raw(Convert.ToString(drJob["Description"])));

drJob["Description"]是数据行,我从中获取描述,并希望将描述转换为纯文本。

将HTML文本转换为纯文本

.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中分离单个类型的标记时效果更好。(我用它作为雨量器来分析东西,从来没有遇到过任何问题)