Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting a substring of an attribute in XPATH

Tags:

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 )] 
like image 406
Kit Sunde Avatar asked Dec 01 '10 07:12

Kit Sunde


People also ask

What is substring in XPath?

What is Xpath substring? In Xpath, the substring is case-sensitive which returns the function of the given input string that is executed before the first occurrence which is executed before the upcoming argument. The function has been executed in the Xpath string function list.


2 Answers

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.

like image 54
Dimitre Novatchev Avatar answered Oct 06 '22 03:10

Dimitre Novatchev


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

like image 26
ecciethetechie Avatar answered Oct 06 '22 01:10

ecciethetechie