这里正确的 xpath 是什么?我正在尝试使用 HtmlUnit 解析一些 html,但无法获取特定表的行。我希望 xpath 通过标题元素识别表格并返回行列表。
<html>
<table>
<caption>table1</caption>
<tr><td>cell 1.1</td><td>cell 1.2</td></tr>
<tr><td>cell 2.1</td><td>cell 2.2</td></tr>
</table>
<table>
<caption>table2</caption>
<tr><td>cell 1-1</td><td>cell 1-2</td></tr>
<tr><td>cell 2-1</td><td>cell 2-2</td></tr>
</table>
</html>
我认为应该工作的 xpath 是 "//caption['table2']/parent::table/tr" 但是在线测试器最终会返回两个表中的所有行,而不仅仅是带有目标标题的行。但是在我自己的 java 测试中使用 HtmlUnit 返回一个空列表。那行代码是:
final List<HtmlTableRow> domNodeList = (List<HtmlTableRow>) page.getByXPath("//caption['table2']/parent::table/tr");
有什么帮助吗?