0

I have the following html code:

<table class="datepicker-days">
  <tbody>
    <tr data-tryxpath-element="0">
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td class="day  voc-enabled" data-day="01" data-month="03" data-year="2019" data-date="2019-03-01">01</td>
      <td class="day  voc-enabled" data-day="02" data-month="03" data-year="2019" data-date="2019-03-02">02</td>
      <td class="day  voc-enabled" data-day="03" data-month="03" data-year="2019" data-date="2019-03-03">03</td>
   </tr>
   <tr data-tryxpath-element="1">
       <td class="day  voc-enabled" data-day="04" data-month="03" data-year="2019" data-date="2019-03-04">04</td>
       <td class="day  voc-enabled" data-day="05" data-month="03" data-year="2019" data-date="2019-03-05">05</td>
       <td class="day  voc-enabled" data-day="06" data-month="03" data-year="2019" data-date="2019-03-06">06</td>
       <td class="day  voc-enabled" data-day="07" data-month="03" data-year="2019" data-date="2019-03-07">07</td>
       <td class="day  voc-enabled" data-day="08" data-month="03" data-year="2019" data-date="2019-03-08">08</td>
       <td class="day  voc-enabled" data-day="09" data-month="03" data-year="2019" data-date="2019-03-09">09</td>
       <td class="day  voc-enabled" data-day="10" data-month="03" data-year="2019" data-date="2019-03-10">10</td>
   </tr>
   <tr data-tryxpath-element="2">
       <td class="day  voc-enabled" data-day="11" data-month="03" data-year="2019" data-date="2019-03-11">11</td>
       <td class="day  voc-disabled" data-day="12" data-month="03" data-year="2019" data-date="2019-03-12">12</td>
       <td class="day  voc-disabled" data-day="13" data-month="03" data-year="2019" data-date="2019-03-13">13</td>
       <td class="day  voc-disabled" data-day="14" data-month="03" data-year="2019" data-date="2019-03-14">14</td>
       <td class="day  voc-disabled" data-day="15" data-month="03" data-year="2019" data-date="2019-03-15">15</td>
       <td class="day  voc-disabled" data-day="16" data-month="03" data-year="2019" data-date="2019-03-16">16</td>
       <td class="day  voc-disabled" data-day="17" data-month="03" data-year="2019" data-date="2019-03-17">17</td>
   </tr>
   <tr>
       <td class="day  voc-disabled" data-day="18" data-month="03" data-year="2019" data-date="2019-03-18">18</td>
       <td class="day  voc-disabled" data-day="19" data-month="03" data-year="2019" data-date="2019-03-19">19</td>
       <td class="day  voc-disabled" data-day="20" data-month="03" data-year="2019" data-date="2019-03-20">20</td>
       <td class="day  voc-disabled" data-day="21" data-month="03" data-year="2019" data-date="2019-03-21">21</td>
       <td class="day  voc-disabled" data-day="22" data-month="03" data-year="2019" data-date="2019-03-22">22</td>
       <td class="day  voc-disabled" data-day="23" data-month="03" data-year="2019" data-date="2019-03-23">23</td>
       <td class="day  voc-disabled" data-day="24" data-month="03" data-year="2019" data-date="2019-03-24">24</td>
    </tr>
    ...
</tbody>

And I need to get the last td with the class voc-enabled element with a xpath. In this example will be only the td with the text '11'. My best aproximation was the following:

//table[@class='datepicker-days']//td[contains(@class,'voc-enabled')][last()]

But this xpath obtains 3 elements, the last td with the class 'voc-enabled' in each tr element.

Of course, this table is dynamic and I always need the last one independently which day was.

Could someone help me? Thanks.

1 Answers1

1

You need to put the expression in brackets due to operator precedence in XSLT:

(//table[@class='datepicker-days']//td[contains(@class,'voc-enabled')])[last()]

The error was that the [] brackets have a higher precedence than //, so [last()] was applied before //.

zx485
  • 28,498
  • 28
  • 50
  • 59