¿Cómo eliminar todas las etiquetas y obtener el texto puro?

asp.net html html-agility-pack informix regex

Pregunta

Tuve que almacenar el texto de entrada del usuario en mi base de datos con formatos HTML and CSS .

El caso es:

RadEditor , el usuario copia el texto de MSWord a este editor y luego almaceno este texto en la base de datos con ese formato. Luego, cuando recupere los datos del informe o alguna etiqueta, aparecerán algunas etiquetas que envuelven el texto

Utilizo expresiones regulares para eliminar todos los formatos, pero en vano, a veces tiene éxito y no todo el tiempo.

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);
        }

Pregunto ¿Cómo eliminar todo el formato usando HTMLAgility o cualquier forma confiable para asegurar que el texto sea puro?

Note: El tipo de datos de este campo en la base de datos es Lvarchar.

Respuesta popular

El paquete HtmlAgility facilita el trabajo 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;


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué