xpath选择在列中具有多个特定值的tr

时间:2012-05-23 19:44:09

标签: xpath

我有一个包含多行的表,我正在尝试使用xpath来查找每一行中包含特定值的一行。例如,我希望第1列中的“foo”,第2列中的“bar”和第3列中的“baz”。

我可以使用什么xpath来获取包含这些特定列中这三个特定值的行?

例如,根据下表,我希望能够仅返回预期列中具有三个预期值的一行

<table>
  <tr><td>foo</td><td>bar</td><td>xxx</td></tr>
  <tr><td>xxx</td><td>bar</td><td>baz</td></tr>
  <tr><td>foo</td><td>bar</td><td>baz</td></tr>
  <tr><td>bar</td><td>baz</td><td>foo</td></tr>
  <tr><td>foo</td><td>xxx</td><td>baz</td></tr>
</table>

3 个答案:

答案 0 :(得分:14)

这就是技巧(假设table元素是当前上下文节点):

    tr[(td[1] = 'foo') and (td[2] = 'bar') and (td[3] = 'baz')]

td[1]选择第一个td孩子,td[2]第二个,等等。然后将条件与and结合起来。

答案 1 :(得分:1)

这也有诀窍......我确信有更快的方法来获得你想要的东西,不使用xpath ..

// tr [td [1] [text()='foo']和td [2] [text()='bar']和td [3] [text()='baz']] < / p>

答案 2 :(得分:-1)

搜索时可以使用directorypath\[name="value"]\...