开发者

Getting a substring of an attribute in XPATH

开发者 https://www.devze.com 2023-01-27 13:52 出处:网络
Given <foo> <bar baz=\"Hello, World!\"> </foo> 开发者_如何学GoHow do I all but the last 4 characters of @baz? One of my attempts was:

Given

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

开发者_如何学GoHow do I all but the last 4 characters of @baz? One of my attempts was:

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


Use:

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

Do note the 3 in the expression.

The following is wrong:

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

because this returns the last 5 characters of the string value of the baz attribute.


try this: substring-before(/foo/bar/@baz,"rld!")


That's actually not so bad, but IIRC substring doesn't like negative indices. I tried

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

Which gave me the expected result.

0

精彩评论

暂无评论...
验证码 换一张
取 消