Parsen durch innerHTML mit HtmlAgilityPack

c# html-agility-pack selectsinglenode xpath

Frage

Ich versuche nur herauszufinden, wie Informationen aus bereits geparsten Informationen analysiert werden.

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div [@class=\"result-link\"]"))
{
    if (node == null)
        Console.WriteLine("debug");
    else
    {
        //string h_url = node.Attributes["a"].Value;
        Console.WriteLine(node.InnerHtml);
    }
}

Sie können also sehen, was ich mit der Deklaration 'string h_url' zu tun versuche. Innerhalb der Div-Klasse "result-link" gibt es ein Attribut "href", das ich versuche, den href-Wert zu erfassen. Also die Verbindung im Grunde genommen.

Kann es nicht herausfinden. Ich habe versucht, das Attribute-Array zu verwenden:

string h_url = node.Attributes["//a[@href].Value;

Ohne Glück.

Akzeptierte Antwort

Mit XPath können Sie Elemente auswählen, die sich auf den aktuellen Knoten beziehen:

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div[@class='result-link']");
if (nodes != null)
{
    foreach (HtmlNode node in nodes)
    {
        HtmlNode a = node.SelectSingleNode("a[@href]");
        if (a != null)
        {
            // use  a.Attributes["href"];
        }

        // etc...
    }
}



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