.NET C# Cómo quitar etiquetas HTML
¿Necesitas quitar las etiquetas o tags html de un string desde .NET C#? Hay circunstancias, como cuando se emplea un editor WYSIWYG que necesites descodificar un texto (ya sea para almacenarlo en BBDD u otros propósitos) con caracteres HTML, para que te quede texto plano. La siguiente clase en C# te servirá para convertir un string con HTML en texto plano:
using System; using System.Text.RegularExpressions; /// <summary> /// Methods to remove HTML from strings. /// </summary> public static class HtmlRemoval { /// <summary> /// Remove HTML from string with Regex. /// </summary> public static string StripTagsRegex(string source) { return Regex.Replace(source, "<.*?>", string.Empty); } /// <summary> /// Compiled regular expression for performance. /// </summary> static Regex _htmlRegex = new Regex("<.*?>", RegexOptions.Compiled); /// <summary> /// Remove HTML from string with compiled Regex. /// </summary> public static string StripTagsRegexCompiled(string source) { return _htmlRegex.Replace(source, string.Empty); } /// <summary> /// Remove HTML tags from string using char array. /// </summary> public static string StripTagsCharArray(string source) { char[] array = new char[source.Length]; int arrayIndex = 0; bool inside = false; for (int i = 0; i < source.Length; i++) { char let = source[i]; if (let == '<') { inside = true; continue; } if (let == '>') { inside = false; continue; } if (!inside) { array[arrayIndex] = let; arrayIndex++; } } return new string(array, 0, arrayIndex); } }
Para probarlo:
Console.WriteLine(HtmlRemoval.StripTagsCharArray(html));
Conteniendo la variable «html» un string con etiquetas html.
¿Te ha ido bien? ¡A mí sí!