HTML-Agilitätspaket

c# html html-agility-pack parsing winforms

Frage

Ich versuche, HTML Agility Pack zu verwenden, um den Beschreibungstext von innerhalb des folgenden Elements zu erhalten:

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

Und vor einiger Zeit hat jemand auf Stackoverflow vorgeschlagen, dass ich HTMLAgilityPack verwende. Aber ich weiß nicht, wie ich es benutzen soll, und die Dokumentation, die ich gefunden habe (einschließlich der in den Downloads enthaltenen Dokumente), haben alle ungültige Links und können daher die Dokumentation nicht sehen.

Kann mir bitte jemand helfen, das zu lösen?

Expertenantwort

Die Verwendung ist XmlDocument sehr ähnlich. Sie können MSDN auf XmlDocument für einen umfassenden Überblick verwenden. Vielleicht möchten Sie auch die XPath-Syntax ( MSDN ) lernen.

Beispiel:

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
}

Das zweite Argument von GetAttributeValue ist der Standardwert, der zurückgegeben wird, wenn das Attribut nicht gefunden wird.


Beliebte Antwort

Öffentliche Zeichenfolge HtmlAgi (Zeichenfolgen-URL, Zeichenfolgenschlüssel) {

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

}


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum