我有以下类型的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'标签。我该怎么办?
答案 0 :(得分:7)
HtmlAgilityPack使用XPath selectors来选择节点。
对于你的问题,这可行:
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");