Comment puis-je supprimer le texte commenté en HTML à l'aide de htmlagilitypack

html-agility-pack

Question

Est-il possible de supprimer le texte commenté en HTML à l'aide de la bibliothèque htmlagilitypack ? Actuellement, je suis en train de migrer d'ASP vers ASP.NET MVC. Là, Regex est utilisé pour ces choses et je veux juste savoir que je peux y parvenir en utilisant htmlagilitypack avant de commencer à l'essayer.

Réponse acceptée

Vous pouvez trouver tous les nœuds de type HtmlCommentNode (qui représente un commentaire HTML) et le supprimer du document. Mais notez bien que AgilityPack considère par exemple <!DOCTYPE html> comme un nœud de commentaire. Ainsi, les nœuds comme celui-ci doivent être ignorés pour la suppression:

var doc = new HtmlDocument();
doc.LoadHtml(html);
var comments = doc.DocumentNode.DescendantNodes()
    .OfType<HtmlCommentNode>()
    .Where(c=> 
        !c.Comment.StartsWith("<!DOCTYPE", StringComparison.OrdinalIgnoreCase)
    ).ToList();

foreach (var comment in comments)
    comment.Remove();

var result = doc.DocumentNode.InnerHtml;



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