201 votes

Comment supprimer toutes les balises HTML d'une chaîne sans savoir quelles sont les balises qu'elle contient ?

Existe-t-il un moyen simple de supprimer toutes les balises HTML ou TOUT ce qui est lié au HTML d'une chaîne de caractères ?

Par exemple :

string title = "<b> Hulk Hogan's Celebrity Championship Wrestling &nbsp;&nbsp;&nbsp;<font color=\"#228b22\">[Proj # 206010]</font></b>&nbsp;&nbsp;&nbsp; (Reality Series, &nbsp;)"

Ce qui précède devrait vraiment être :

"Hulk Hogan's Celebrity Championship Wrestling [Proj # 206010] (Série réalité)"

387voto

Bidou Points 695

Vous pouvez utiliser une simple expression rationnelle comme celle-ci :

public static string StripHTML(string input)
{
   return Regex.Replace(input, "<.*?>", String.Empty);
}

Sachez que cette solution a son propre défaut. Voir Supprimer les balises HTML dans une chaîne pour plus d'informations (notamment les commentaires de "Mark E. Haase"/@mehaase)

Une autre solution serait d'utiliser l'option Pack Agilité HTML .
Vous pouvez trouver un exemple d'utilisation de la bibliothèque ici : Pack agilité HTML - supprimer les balises indésirables sans supprimer le contenu ?

85voto

ssilas777 Points 3866

Vous pouvez analyser la chaîne en utilisant Html Agility pack et obtenir l'InnerText.

    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml(@"<b> Hulk Hogan's Celebrity Championship Wrestling &nbsp;&nbsp;&nbsp;<font color=\"#228b22\">[Proj # 206010]</font></b>&nbsp;&nbsp;&nbsp; (Reality Series, &nbsp;)");
    string result = htmlDoc.DocumentNode.InnerText;

7voto

Vinay Points 373

Vous pouvez utiliser le code ci-dessous sur votre chaîne et vous obtiendrez la chaîne complète sans la partie html.

string title = "<b> Hulk Hogan's Celebrity Championship Wrestling &nbsp;&nbsp;&nbsp;<font color=\"#228b22\">[Proj # 206010]</font></b>&nbsp;&nbsp;&nbsp; (Reality Series, &nbsp;)".Replace("&nbsp;",string.Empty);            
        string s = Regex.Replace(title, "<.*?>", String.Empty);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X