如何 select 一个 td 通过其相对 th 的位置?
How to select a td by position of its relative th?
这是我的 HTML 代码:
<html>
<body>
<table border=1>
<tr>
<th>foo</th>
<th>bar</th>
</tr>
<tr>
<td>1235;lsdfm*</td>
<td>bar-value</td>
</tr>
</table>
<table border=1>
<tr>
<th>bar</th>
<th>foo</th>
</tr>
<tr>
<td>bar-value</td>
<td>sdfgsdfrr</td>
</tr>
</table>
</body>
</html>
我想 select 与 th
相关的 td
包含 "foo" 文本。换句话说,我想 select 具有值 "sdfgsdfrr" 和“1235;lsdfm*”的 td
。
到目前为止我尝试这个 css select 或兼容 Jsoup selector API:
table:has(th:matchesOwn(^foo$)) ??
- 我怎样才能完成这个cssselect或者?
- 什么是等价的纯CSSselect或?
我认为即使使用 jsoup 目前提供的 selectors 也是不可能的。例如,您不能使用 :has()
来表达列或元素之间的位置关系。
Selectors 4 建议添加一些按列定位单元格元素的内容,包括截至 2015 年 1 月的 column combinator ||
。但是,当前文本似乎表明 ||
需要您的 table 有明确的 col
元素才能工作,所以这里也没有用。
用一个 selector 完成这一切可能运气不佳。或者,您可以 select th
,确定其位置,然后使用此信息分别找到 td
。您可能需要为每个 table 或每一列分别执行此操作。
这是我的 HTML 代码:
<html>
<body>
<table border=1>
<tr>
<th>foo</th>
<th>bar</th>
</tr>
<tr>
<td>1235;lsdfm*</td>
<td>bar-value</td>
</tr>
</table>
<table border=1>
<tr>
<th>bar</th>
<th>foo</th>
</tr>
<tr>
<td>bar-value</td>
<td>sdfgsdfrr</td>
</tr>
</table>
</body>
</html>
我想 select 与 th
相关的 td
包含 "foo" 文本。换句话说,我想 select 具有值 "sdfgsdfrr" 和“1235;lsdfm*”的 td
。
到目前为止我尝试这个 css select 或兼容 Jsoup selector API:
table:has(th:matchesOwn(^foo$)) ??
- 我怎样才能完成这个cssselect或者?
- 什么是等价的纯CSSselect或?
我认为即使使用 jsoup 目前提供的 selectors 也是不可能的。例如,您不能使用 :has()
来表达列或元素之间的位置关系。
Selectors 4 建议添加一些按列定位单元格元素的内容,包括截至 2015 年 1 月的 column combinator ||
。但是,当前文本似乎表明 ||
需要您的 table 有明确的 col
元素才能工作,所以这里也没有用。
用一个 selector 完成这一切可能运气不佳。或者,您可以 select th
,确定其位置,然后使用此信息分别找到 td
。您可能需要为每个 table 或每一列分别执行此操作。