对于这种一般结构:
<div class="col-xs-10">
<input id="This[0].That" name="This[0].That" ng-model="item.That">
</div>
<div class="col-xs-2">
<input ng-click="removeThat(item)" value="Remove">
</div>
为什么这种特殊语法无效:
//input[@id='This[0].That']/following-sibling::/../input[@value="Remove"]
答案 0 :(得分:1)
要回答您的直接问题,您会收到XPath语法错误,因为following-sibling::
必须后跟一个NCName,例如input
:
`following-sibling::input`
但请注意,示例HTML中的input
元素不是兄弟。
您可以使用input
轴,根据第一个选择第二个following::
:
//input[@id='This[0].That']/following::input[@value="Remove"]
当然,对于小样本,更简单的XPath就足够了:
//input[@value="Remove"]
答案 1 :(得分:0)
只是添加kjhuges所说的,如果你使用第一个输入锚定的背后的推理是因为有多个
//input[@value='Remove']
元素,您始终可以使用索引来查找它们或修饰符标记
(//input[@value='Remove'])[index]
//input[@value='Remove'])[last()]