XPath YQL仅获取特定列

时间:2013-09-18 17:01:01

标签: html xml xpath yql

您好我有一个html页面,我想使用YQL查询/“刮”。 我想从该html页面上的表标签中只获得四列文本,我不知道如何使用XPath表示它。

我通过右键单击Chrome中的单元格找到其中一个单元格,检查元素并复制xpath,这是我仅为该单元格获得的结果。

//*[@id="partsTable"]/tbody/tr[1]/td[8]/text()

这是第1行和第8列的表达式。 实际上,我想获取5,6,8,9列中内容的所有行。我不知道是否可以轻松地在XPath中编写它。

非常感谢你的帮助。 (我是XPath的新手,所以解释将不胜感激)

2 个答案:

答案 0 :(得分:0)

使用position()查询元素的索引。

//*[@id="partsTable"]/tbody/tr/td[5 <= position() and position() <= 9]/text()

注意在浏览器中使用开发人员工具获取XPath表达式时,请查看“Why does my XPath query (scraping HTML tables) only work in Firebug, but not the application I'm developing?”。

答案 1 :(得分:0)

您可以使用类似于SQL的IN

的语法查询特定位置
[position() = (5, 6, 8, 9)]

所以你的完整表达将是:

//*[@id="partsTable"]/tbody/tr[1]/td[position() = (5, 6, 8, 9)]/text()