Supprimer les TextNodes inutiles dans HtmlAgilityPack

c# html-agility-pack web-scraping

Question

Je racle un certain nombre de sites Web en utilisant HtmlAgilityPack. Le problème est qu’il semble insister sur l’insertion de TextNodes dans la plupart des emplacements vides ou contenant une masse de \ n, espaces et \ r.

Ils ont tendance à me causer des problèmes lorsque je compte les enfants, car firebug ne les montre pas, mais HtmlAgilityPack, lui.

Existe-t-il un moyen de dire à HtmlAgilityPack de cesser de le faire, ou du moins de vider ces textnodes? (Je veux garder les UTILES cependant). Pendant que nous sommes ici, même chose pour les balises Comment et Script.

Réponse populaire

Vous pouvez utiliser la méthode d'extension suivante:

static class HtmlNodeExtensions
{
    public static List<HtmlNode> GetChildNodesDiscardingTextOnes(this HtmlNode node)
    {
        return node.ChildNodes.Where(n => n.NodeType != HtmlNodeType.Text).ToList();
    }
}

Et appelez ça comme ça:

List<HtmlNode> nodes = someNode.GetChildNodesDiscardingTextOnes();



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