我必须定义 xpath 来访问第二个跨度文本,以解析加载到 AgilityPack 文档的以下名称-值 html 结构(见下文)。我会使用 xpath 和 C# 执行以下查询:
var valueSpan = doc.SelectNodes("//div[@class='container']/div[@class='value2' and ???]/span[2]");
问题:我不能为“第二个匹配的 div 与 class==”value2”编写 xpath 选择器。是否可以使用 xpath 选择第二个“value2”div 或者应该通过索引“容器”节点的子节点来完成(实际兄弟“value2”的索引可能会有所不同)?
<div class="container">
<div class="value1">
<span class="name">Title 1</span>
<span class="value">some value</span>
</div>
<div class="value2">
<span class="name">Title 2.1</span>
<span class="value">some value</span>
</div>
<div class="value2">
<span class="name">Title 2.2</span>
<span class="value">some value</span>
</div>
<div class="value3">
<span class="name">Title 3</span>
<span class="value">some value</span>
</div>
</div>