我尝试将所有以符号'3'结尾的元素设为1 3
要做到这一点,我写了这个xpath
(//table)[2]//tr/td[position() = 7 and substring(., (string-length(.) - string-length(' 3')) + 2) = ' 3']
但它不起作用。 P.S我尝试重写函数结束 - 在xpath 1.0中不可用 感谢。
答案 0 :(得分:1)
您所写的条件不正确。请尝试以下条件。
"... [position() = 7 and substring(., string-length(.) - string-length(' 3') + 1) = ' 3']"
请注意,我已将+2
更改为+1
。
看一下下面的例子:
> $x("substring('1 2 3', string-length('1 2 3') - string-length(' 3') + 2)")
"3"
> $x("substring('1 2 3', 5-2+2)")
"3"
请注意,substring
函数的第二个参数值为5
。因此,它从5 th 索引返回字符串(请注意,在XPath中,第一个索引被视为1
),即"3"
。
要获得" 3"
,只需添加1而不是2。
> $x("substring('1 2 3', string-length('1 2 3') - string-length(' 3') + 1)")
" 3"