这就是我现在所拥有的:
//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>
谢谢!
答案 0 :(得分:2)
//tr[*/input
[@id = ../label[.='foo']/@for and @value='bar']
]
看起来足够了。