Come rimuovere tutti i tag e ottenere il testo puro?

asp.net html html-agility-pack informix regex

Domanda

Ho dovuto memorizzare il testo di input dell'utente nel mio database con HTML and CSS formati HTML and CSS .

Il caso è:

RadEditor , L'utente copia il testo da MS Word in questo editor, quindi memorizzo questo testo nel database con quel formato. poi quando recuperi i dati nel report o qualche etichetta alcuni tag appaiono avvolgendo il testo !!

Uso espressioni regolari per rimuovere tutti i formati, ma invano a volte riesce e non sempre.

private static Regex oClearHtmlScript = new Regex(@"<(.|\n)*?>", RegexOptions.Compiled);

        public static string RemoveAllHTMLTags(string sHtml)
        {

            sHtml = sHtml.Replace("&nbsp;", string.Empty);
            sHtml = sHtml.Replace("&gt;", ">");
            sHtml = sHtml.Replace("&lt;", "<");
            sHtml = sHtml.Replace("&amp;", "&");
            if (string.IsNullOrEmpty(sHtml))
                return string.Empty;

            return oClearHtmlScript.Replace(sHtml, string.Empty);
        }

Chiedo Come rimuovere tutto il formato utilizzando HTMLAgility o qualsiasi altro modo affidabile per garantire che il testo sia puro?

Note: il tipo di dati di questo campo nel database è Lvarchar

Risposta popolare

Il pacchetto HtmlAgility semplifica il lavoro con HTML.

HtmlDocument mainDoc = new HtmlDocument();
string htmlString = "<html><body><h1>Test</h1> more text</body></html>"
mainDoc.LoadHtml(htmlString);
string cleanText = mainDoc.DocumentNode.InnerText;



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché