鉴于
<foo>
<bar baz="Hello, World!">
</foo>
除了@baz的最后4个字符,我该怎么办?我的一个尝试是:
/foo/bar/@baz[substring( ., 0, -4 )]
答案 0 :(得分:19)
使用强>:
substring(/foo/bar/@baz, string-length(/foo/bar/@baz)-3)
请注意表达式中的3
。
以下是错误的:
substring(/foo/bar/@baz, string-length(/foo/bar/@baz)-4)
因为这会返回baz
属性的字符串值的最后5个字符。
答案 1 :(得分:8)
试试这个:
substring-before(/foo/bar/@baz,"rld!")
答案 2 :(得分:4)
实际上并没有那么糟糕,但是IIRC子串不喜欢负面指数。我试过了
substring(/foo/bar/@baz, string-length(/foo/bar/@baz)-4)
这给了我预期的结果。