4

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

我可以使用什么 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>
4

3 回答 3

16

这可以解决问题(假设table元素是当前上下文节点):

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

td[1]选择第一个td孩子、td[2]第二个孩子等。然后将条件与and.

于 2012-05-23T19:58:09.397 回答
1

这也可以解决问题......我相信有更快的方法来获得你想要的东西,但不使用 xpath ..

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

于 2012-05-23T20:04:10.703 回答
-1

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

于 2012-05-23T19:48:14.297 回答