希望有人能够迅速指导我在XPath方面的困难。
目前,我已经确定了我需要在HTML源代码中使用的正确表格,但是我需要处理仅包含“Chapter”文本的行。
我最后一次尝试是这样做的:
// get the correct table
HtmlTable table = page.getFirstByXPath("//table[2]");
// now the failing bit....
def rows = table.getByXPath("*/td[contains(text(),'Chapter')]")
我认为上面的xpath代表获取所有有一个后续子元素'td',在其dom中包含文本'Chapter'的元素。
我的源代码中匹配的一行示例为:
<tr valign="top">
<td nowrap="" align="Right">
<font face="Verdana">
<a href="index.cfm?a=1">Chapter 1</a>
</font>
</td>
<td class="ChapterT">
<font face="Verdana">DEFINITIONS</font>
</td>
<td> </td>
</tr>
非常感谢任何帮助/指针。
谢谢,
.
和//
是XPath的缩写语法。.
选择上下文节点。//td
选择文档根节点的所有td
后代,因此选择与上下文节点在同一文档中的所有td
元素。参考资料: http://www.w3.org/TR/xpath/#path-abbrev - Kirill Polishchuk