Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XPath to retrieve text within span

I am trying to figure out the XPath which will retrieve the 'text Data 3' from the following HTML snippet

  <span class="inner-span">
    Text-data 1
    <br>
    <span>Text Data 2</span> text Data 3
   </span>

So far i have tried the following Xpath which leads me to the span with class 'inner-span'

 /html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]

But dont know what to add more to Xpath which will only give me text 'text Data 3' from above Html snippet. Thanks

like image 927
shivamsupr Avatar asked Apr 26 '13 16:04

shivamsupr


2 Answers

For your particular case this XPath query would work:

normalize-space(//span[@class="inner-span"]/text()[last()])

Tried it in this online tester and here's the result:

  1. Your HTML;
  2. My XPath expression;
  3. The expected result "text Data 3".

enter image description here

like image 100
Rolando Isidoro Avatar answered Sep 21 '22 08:09

Rolando Isidoro


You could select /html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()] to get the text node (though with leading and trailing white space) or you can use an XPath returning a string with normalize-space(/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()]).

like image 27
Martin Honnen Avatar answered Sep 22 '22 08:09

Martin Honnen