Given
<foo>
<bar baz="Hello, World!">
</foo>
How 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.
substring(/foo/bar/@baz, 1, string-length(/foo/bar/@baz)-3) Do note that recently moderators and other people have been "correcting" questions -- leading to this mess :(