如何使用HTML敏捷包选择嵌套元素?

Ami*_*mit 6 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>
Run Code Online (Sandbox Code Playgroud)

我想选择l1标签的集合,对于每个l1标签,我想为当前的l1标签选择所有'a'标签.我该怎么做??

Bro*_*ass 7

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");
}
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了一个XPath选择器,它将获取文档中的所有 l1元素(通过使用前导//),更具体地说,您也可以这样做:

var l1s = doc.DocumentNode.SelectNodes("root/p1/l1");
Run Code Online (Sandbox Code Playgroud)