C# 获取节点集合中的所有元素

C# 获取节点集合中的所有元素,c#,html-agility-pack,C#,Html Agility Pack,我有一个html文件: <div class="form-wrapper"> <div></div> <div class="Clearfix"> <div></div> <div></div> <span></span><span class="time">Time</span> </div> <div></div>

我有一个html文件:

<div class="form-wrapper">
<div></div>
<div class="Clearfix">
<div></div>
<div></div>
<span></span><span class="time">Time</span>
</div>
<div></div>
<div class="Clearfix">
<div></div>
<div></div>
<span></span><span class="time">Time1</span>
</div>
<div></div>
<div class="Clearfix">
<div></div>
<div></div>
<span></span><span class="time">Time2</span>
</div><div></div>
<div class="Clearfix">
<div></div>
<div></div>
<span></span><span class="time">Time3</span>
</div>
我选择了第一个()“表单包装器”,因为它们很多

我也试着用这个:

foreach (var Node in node_1.SelectNodes("//div[@class='clearfix']"))
{
 //
}
问题是:如您所见,我有4个
Clearfix
类,因此我需要得到结果:

Time
Time1
Time2
Time3
但出于某些原因,我只得到:

Time
Time
Time
Time
  • 当您在某个节点上进行查询时,您不需要在开始时使用
    /
    ,如果您要添加该节点,则将在整个文档上执行查询

  • 选择后需要获取第一个节点,因此需要获取索引为
    0
    而非
    1

  • 这两点将解决您的问题,但您可以做一些改进

  • 您可以使用用户
    选择SingleNode()
  • 如果不需要有关父节点的任何信息,可以直接查询 对于子节点-
    htmlDocument。选择节点(\\span[@class='time'])
    将完成所有工作
  • 当您在某个节点上进行查询时,您不需要在开始时使用
    /
    ,如果您要添加该节点,则将在整个文档上执行查询

  • 选择后需要获取第一个节点,因此需要获取索引为
    0
    而非
    1

  • 这两点将解决您的问题,但您可以做一些改进

  • 您可以使用用户
    选择SingleNode()
  • 如果不需要有关父节点的任何信息,可以直接查询 对于子节点-
    htmlDocument。选择节点(\\span[@class='time'])
    将完成所有工作
  • Time
    Time
    Time
    Time