用于查找url和数据的xpath表达式

时间:2011-08-14 08:01:12

标签: xpath

我想得到每个表的值和下面给出的表中每个的href值。 作为xpath的新手,我发现编写xpath表达式很困难。 但是,理解xpath表达式的作用在某种程度上更容易。

预期产出

http://a.com/   data for a  526735  Z
http://b.com/   data for b  522273  Z
http://c.com/   data for c  513335  Z  

<table class = dataTabe>
<tbody>
<tr>
<td><a HREF="http://a.com/" target="_parent">data for a</a></td>
<td class="numericalColumn">526735</td>
<td class="numericalColumn">Z</td></tr>
<tr>
<td><a HREF="http://b.com/" target="_parent">data for b</a></td>
<td class="numericalColumn">522273</td>
<td class="numericalColumn">B</td></tr>
<tr>
<td><a HREF="http://c.com" target="_parent">data for c</a></td>
<td class="numericalColumn">513335</td>
<td class="numericalColumn">B</td></tr>
</tbody>
</table>

3 个答案:

答案 0 :(得分:0)

您需要两件事:一个用于查找所需节点的XPath查询,另一个用于根据需要输出文本的XPath查询。由于您没有提供有关您正在使用的语言的更多信息,因此我将一些伪代码放在一起:

foreach node in document.select("//table[class='dataTable']//tr[td/a/@HREF]")
  write node.select("concat(td/a/@HREF,'   ',.)")

答案 1 :(得分:0)

此站点有一个很好的免费工具,用于构建XPath表达式(XPath Builder):

http://www.bubasoft.net/

答案 2 :(得分:-1)

使用此XPath://tr/td/a/@HREF | //tr//text()