2010-12-01 95 views
19

一个子鉴于入门属性的XPATH

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

如何我所有,但@baz的最后4个字符?我的一个尝试是:

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

问得好,+1。看到我的答案是迄今唯一正确的解决方案。 :) – 2010-12-01 07:38:49

回答

17

使用

substring(/foo/bar/@baz, string-length(/foo/bar/@baz)-3) 

请注意在表达式中3

下列哪项是错误

substring(/foo/bar/@baz, string-length(/foo/bar/@baz)-4) 

,因为这将返回baz属性的字符串值的最后5个字符。

3

这实际上并不坏,但IIRC子串不喜欢负指数。我试过

substring(/foo/bar/@baz, string-length(/foo/bar/@baz)-4) 

这给了我预期的结果。

6

试试这个: substring-before(/foo/bar/@baz,"rld!")

+0

这真的很简单,谢谢。 – Rao 2017-03-14 06:05:18