簡體   English   中英

將HTML文本轉換為純文本

[英]Convert HTML text to Plain text

我有一個文本區域。 我允許輸入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);

您可以使用正則表達式“<[^>] +>”簡單地使用替換方法

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
        }

    }

如果您需要更多說明,請與我們聯系。

[編輯:]請注意,這不是一個干凈的功能,所以添加一行來清理空格或換行符。 但實際從中間標簽獲取文本應該可以正常工作。 如果你想節省空間 - 使用正則表達式,看看這是否適合你。 雖然發布關於正則表達不干凈的人是對的,但可能還有其他方法; 從html中分離單一類型的標記時,正則表達式通常更好。 (我用雨量計來解析東西,從來沒有任何問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM