XPath to retrieve text within span

62,227

Solution 1

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

Solution 2

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()]).

Share:
62,227
shivamsupr
Author by

shivamsupr

Updated on August 23, 2020

Comments

  • shivamsupr
    shivamsupr almost 4 years

    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

  • shivamsupr
    shivamsupr about 11 years
    I checked your solution on the same link you provided but it gives all text-data from [@class="inner-span"]. I just want text data 3, not all text data 1,text data 2,text data 3.
  • Rolando Isidoro
    Rolando Isidoro about 11 years
    I've added a screenshot to show you the result I got and how I got it, hope it helps.