Domanda

Sto cercando di utilizzare HTML Agility Pack per ottenere il testo della descrizione all'interno di:

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

E qualcuno su Stackoverflow poco fa mi suggerì di utilizzare HTMLAgilityPack. Ma non so come usarlo, e la documentazione che ho trovato (compresi i documenti contenuti nei download) hanno tutti link non validi e quindi non è possibile visualizzare la documentazione.

Qualcuno può aiutarmi a risolverlo?

Risposta esperta

L'utilizzo è molto simile a XmlDocument ; è possibile utilizzare MSDN su XmlDocument per un'ampia panoramica; potresti anche voler imparare la sintassi xpath ( MSDN ).

Esempio:

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
}

Il secondo argomento di GetAttributeValue è il valore predefinito restituito nel caso in cui l'attributo non venga trovato.


Risposta popolare

public string HtmlAgi (string url, string key) {

    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";
    }

}


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché