在XPATH中获取属性的子字符串

时间:2010-12-01 07:08:12

标签: string xpath substring

鉴于

<foo>
  <bar baz="Hello, World!">
</foo>

除了@baz的最后4个字符,我该怎么办?我的一个尝试是:

/foo/bar/@baz[substring( ., 0, -4 )]

3 个答案:

答案 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)

这给了我预期的结果。