Comment supprimer les balises de code HTML et de pré-contenu indésirables du contenu HTML avec HtmlAgilityPack

c# html-agility-pack

Question

J'ai créé ce code, mais comment supprimer toutes les balises pre et code.

private static string RemoveHtmlTags(this string markup)
{
    if (string.IsNullOrEmpty(markup))
    {
        return string.Empty;
    }

    var document = new HtmlDocument();

    document.LoadHtml(markup);

    return document.DocumentNode.InnerText;
}

Réponse acceptée

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

doc.DocumentNode.Descendants()
                .Where(n => n.Name == "script" || n.Name == "style")
                .ToList()
                .ForEach(n => n.Remove());

Réponse populaire

Vous pouvez le faire en utilisant la classe HtmlDocument :

HtmlDocument doc = new HtmlDocument();

doc.LoadHtml(input);

doc.DocumentNode.SelectNodes("//style|//script").ToList().ForEach(n => n.Remove());


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi