Wie wählt man verschachtelte Elemente mit dem HTML Agility Pack aus?

c# html-agility-pack

Frage

Ich habe eine folgende Art von XML / HTML

<root>
<p1>
    <l1>
        <a>something</a>
        <a>something</a>
        <a>something</a>
        <a>something</a>
    </l1>
    <l1>
        <a>something</a>
        <a>something</a>
        <a>something</a>
        <a>something</a>
    </l1>
</p1>
</root>

Ich möchte Sammlung von l1 Tags auswählen und für jedes l1-Tag möchte ich alle "a" -Tags für das aktuelle l1-Tag auswählen. wie mache ich es??

Akzeptierte Antwort

HtmlAgilityPack verwendet XPath-Selektoren , um Knoten auszuwählen.

Für dein Problem würde das funktionieren:

HtmlDocument doc = new HtmlDocument();
doc.Load(@"test.html");

var l1s = doc.DocumentNode.SelectNodes("//l1");
foreach (var item in l1s)
{
    var links = item.SelectNodes("a");
}

Beachten Sie, dass ich einen XPath-Selektor verwendet habe, der alle l1 Elemente im Dokument erfasst (indem Sie // ). Um genauer zu sein, könnten Sie auch Folgendes tun:

var l1s = doc.DocumentNode.SelectNodes("root/p1/l1");


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