.NET C# Cómo quitar etiquetas HTML

.NET C# Cómo quitar etiquetas HTML

c sharp remove html from string

¿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í!

Fuente: dotnetperls.com – remove html tags