Pack d'agilité HTML

c# html html-agility-pack parsing winforms

Question

J'essaie d'utiliser HTML Agility Pack pour obtenir le texte de description à l'intérieur du:

<meta name="description" content="**this is the text i want to extract and store in a string**" />

Et quelqu'un sur Stackoverflow il y a quelque temps m'a suggéré d'utiliser HTMLAgilityPack. Mais je ne sais pas comment l'utiliser, et la documentation que j'ai trouvée (y compris les documents contenus dans les téléchargements) contient des liens non valides et ne peut donc pas être visualisée.

Quelqu'un peut-il m'aider s'il vous plaît à résoudre ce problème?

Réponse d'expert

L'utilisation est très similaire à XmlDocument ; vous pouvez utiliser MSDN sur XmlDocument pour un aperçu général; vous voudrez peut-être aussi apprendre la syntaxe xpath ( MSDN ).

Exemple:

HtmlDocument doc = new HtmlDocument();
doc.Load(path); // or .LoadHtml(html);
HtmlNode node = doc.DocumentNode.SelectSingleNode("//meta[@name='description']");
if (node != null) {
    string desc = node.GetAttributeValue("content", "");
    // TODO: write desc somewhere
}

Le deuxième argument de GetAttributeValue est la valeur par défaut renvoyée si l'attribut est introuvable.


Réponse populaire

chaîne publique HtmlAgi (chaîne URL, clé de chaîne) {

    var Webget = new HtmlWeb();
    var doc = Webget.Load(url);
    HtmlNode ourNode = doc.DocumentNode.SelectSingleNode(string.Format("//meta[@name='{0}']", key));

    if (ourNode != null)
    {


            return ourNode.GetAttributeValue("content", "");

    }
    else
    {
        return "not fount";
    }

}



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