如何使用HTML敏捷包選擇嵌套元素?

c# html-agility-pack

我有以下類型的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>

我想選擇l1標籤的集合,對於每個l1標籤,我想為當前的l1標籤選擇所有'a'標籤。我該怎麼做??

一般承認的答案

HtmlAgilityPack使用XPath選擇器來選擇節點。

對於你的問題,這將工作:

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

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

請注意,我使用了一個XPath選擇器,它將獲取文檔中的所有 l1元素(通過使用前導// ),更具體地說,您也可以這樣做:

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


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因