【发布时间】:2014-03-20 08:07:54
【问题描述】:
我正在尝试从此布局中的表格中选择元素:
<tbody>
<tr class="header">
<th colspan="4">Tier 1</th>
</tr>
<tr>
<td><a>First Thing</a></td>
<td><a>Second Thing</a></td>
<td><a>Third Thing</a></td>
<td></td>
</tr>
<tr>
<td><a>Fourth Thing</a></td>
<td><a>Fifth Thing</a></td>
<td><a>Sixth Thing</a></td>
<td></td>
</tr>
<tr class="header">
<th colspan="4">Tier 2</th>
</tr>
<tr>
<td><a>First Thing</a></td>
<td><a>Second Thing</a></td>
<td><a>Third Thing</a></td>
<td></td>
</tr>
<tr>
<td><a>Fourth Thing</a></td>
<td><a>Fifth Thing</a></td>
<td><a>Sixth Thing</a></td>
<td></td>
</tr>
我想选择“tr class=header”标签之间的所有值。我需要这样做 5 次(实际表上有 6 层,这里没有列出,因为它太长了),最后我需要从最后的标题中选择到表的底部。
我应该指定,我在 C# MVC 中使用 Agility Pack,所以 xpaths 似乎是要走的路。
到目前为止,我已经能够使用“//tr[@class='header']//th”来隔离标头。
主要问题似乎是我想要的节点是彼此的兄弟节点,而不是使遍历更容易的子节点。
最终游戏是我想在我的数据结构中为所有第 1 层元素的值赋予 1,所有第 2 层元素的值为 2,等等,以供以后比较。
【问题讨论】:
-
解析这个 html 的预期结果是什么? tr class="header" 之间的所有值是什么意思?只有两个
th节点。你想要他们的价值观吗? -
制作列表
-
List<T>只有一个泛型参数 -
这实际上重复了 6 次。我只是不想一遍又一遍地复制整个事情。有 6 层。
-
呃,对不起,列出
标签: c# html xpath html-agility-pack