XPath根据包含相关标签和值的字段查找表行

时间:2011-01-07 00:09:45

标签: xpath nokogiri

这就是我现在所拥有的:

//tr[.//*[@id = string(../label[.='foo']/@for) and @value='bar']]

我知道这有效:

//tr[.//label[.='foo']/@for]

我还确认string()函数按预期工作,但似乎挂起来将string()id属性匹配。知道为什么吗?

这里有一点X [HT] ML应该匹配 - 它应该找到第二行:

<tr>
  <td>
     <label for="thing1">foo</label>
     <input id="thing1" value="not-bar" />
  </td>
</tr>
<tr>
  <td>
     <label for="thing2">foo</label>
     <input id="thing2" value="bar" />
  </td>
</tr>

谢谢!

1 个答案:

答案 0 :(得分:2)

//tr[*/input
    [@id = ../label[.='foo']/@for and @value='bar']
    ]

看起来足够了。