Xpath“;以“结束”;不起作用

Xpath“;以“结束”;不起作用,xpath,ends-with,Xpath,Ends With,我试图找到一个输入元素,它的动态id名称总是以“register”结尾。到目前为止我试过这个 "//input[@id[ends-with(.,'register')]]" 还有这个 "//input[ends-with(@id,'register')]" 所有这些都不会产生一个元素。我做错了什么?同时,这项工作: "//input[@id[contains(.,'register')]]" 以下是源代码的一部分: <td class="input"> <input id

我试图找到一个输入元素,它的动态id名称总是以“register”结尾。到目前为止我试过这个

"//input[@id[ends-with(.,'register')]]"
还有这个

"//input[ends-with(@id,'register')]"
所有这些都不会产生一个元素。我做错了什么?同时,这项工作:

"//input[@id[contains(.,'register')]]"
以下是源代码的一部分:

<td class="input">
<input id="m.f0.menu.f2.volumeTabs.BLOCK_COMMON.tcw.form.register" name="m.f0.menu.f2.volumeTabs.BLOCK_COMMON.tcw.form.register" class="aranea-checkbox" type="checkbox"> </td>

以结尾的
函数是xpath 2.0的一部分,但浏览器(您表示正在使用chrome进行测试)通常只支持1.0。因此,您必须使用
字符串长度
子字符串
和相等值的组合来实现它

substring(@id, string-length(@id) - string-length('register') +1) = 'register'

Ian Roberts接受的答案在他的解决方案中使用了两次
@id属性

在这种情况下,我更喜欢将谓词放在
@id
上,如下所示:

//input[@id[substring(.,string-length(.) - string-length('register') + 1) = 'register']]

您使用哪个版本的xpath?除了xpath版本(1.0没有
end-with()
)之外,您还可以向我们展示一些显示问题的XML吗?嗯,不确定-我如何检查版本?我正在通过谷歌Chrome的控制台进行测试。Chrome使用的是哪个版本?至少显示可以重现问题的示例XML。id属性的值是否有可能在末尾有空格,因此它不会精确地以“register”结尾?可能是重复的