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??
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");