假设我有以下列表:
<div id='page_competition_1_block_competition_left_tree_2'>
<div>
<ul>
<li>
<a href="#" />
<ul>
<li>
<a href="#">
</li>
</ul>
</li>
<li>
<a href="#" />
...
如何获取每个a
的第一个li
标记?
我尝试使用:
HtmlNodeCollection compsLi = doc.DocumentNode
.SelectNodes("div[@id='page_match_1_block_competition_left_tree_2']//div//ul/li[1]");
但这将返回null
答案 0 :(得分:0)
您应该能够遍历检索到的compsLi
对象。此外,我认为您的选择器中不需要[1]
。获得<li>
项后,您应该可以执行以下操作:
foreach(var node in compsLi)
{
var aNode = node.SelectSingleNode("./a");
...
}
您可以查看here类似的内容。
答案 1 :(得分:0)
您需要指定一个/
而不是//
,因此:
HtmlNodeCollection compsLi = doc.DocumentNode.SelectNodes("div[@id='page_match_1_block_competition_left_tree_2']//ul/li/a");
本质:
/
:搜索当前节点。
//
:从根文档节点进行搜索。