Получить последний тд из таблицы с определенным классом с xpath - PullRequest
0 голосов
/ 11 марта 2019

У меня есть следующий HTML-код:

<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>

И мне нужно получить последний тд с помощью элемента voc-enabled класса с xpath. В этом примере будет только тд с текстом «11». Мое лучшее приближение было следующим:

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

Но этот xpath получает 3 элемента, последний td с классом 'voc-enabled' в каждом элементе tr.

Конечно, эта таблица динамическая, и мне всегда нужна последняя таблица независимо от того, какой день был.

Может ли кто-нибудь помочь мне? Спасибо.

1 Ответ

0 голосов
/ 11 марта 2019

Вы должны поместить выражение в скобки из-за приоритета оператора в XSLT :

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

Ошибка заключалась в том, что скобки [] имеют более высокий приоритет, чем //, поэтому [last()] был применен до //.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...