2016-08-14 5 views
0

Я новичок в Xpaths или в кодировке, поэтому, пожалуйста, со мной.Идентификатор класса Xpath + текст

Я пытаюсь скрести разрешения таблицы в следующем сайте: https://register.fca.org.uk/ShPo_FirmDetailsPage?id=001b000000MfaDiAAJ

Я нахожусь tryinng, чтобы узнать, если XPath способен обнаружение определенного класса с текстом после таких, как это (Обратите внимание ID случаен так не может найти их использования, а также классы одинаковы для каждой таблицы)

Консультирование по плану покупки жилья

    <div id="a2Nb000000035ohEAA" class="collapse DisciplineDetails PassportDetails PermDesc"> 
         <h3 class="PermissionsListHeader">Advising on a home purchase plan</h3> 
         <br> 
         <br> 
        </div> 

        <ul class="PermissionConditionsList"> 
         <li class="PermissionsConditionsItem"> 
         Customer Type 

         <ul class="PermCondsLimitationsList"> 
          <li style="list-style: none"><span id="j_id0:j_id1:j_id110:regActTable:0:j_id531:0:j_id533:0:j_id535:0:j_id538"></span></li> 

          <li class="PermCondsLimitationsItem Popover">Customer</li> 
         </ul> 
         </li> 
        </ul> 

        <ul class="PermissionConditionsList"> 
         <li class="PermissionsConditionsItem"> 
         Investment Type 

         <ul class="PermCondsLimitationsList"> 
          <li style="list-style: none"><span id="j_id0:j_id1:j_id110:regActTable:0:j_id531:1:j_id533:0:j_id535:0:j_id538"></span></li> 

          <li class="PermCondsLimitationsItem Popover">Home purchase plans</li> 
         </ul> 
         </li> 
        </ul> 
        </div> 
+0

Можете ли вы объяснить, больше ваше требование? Вы хотите получить имя класса соответствующего текста или хотите получить div соответствующего текста? – maheeka

+0

Привет Махека, и спасибо за вашу помощь. Я пытаюсь извлечь таблицу, чтобы XPath нашел таблицу с классом PermissionsListHeader, соответствующей тексту «Консультирование по плану покупки дома», и извлечет тип клиента (в данном случае «Клиент», но может быть несколько из этих) – Tomas

ответ

0

Тем не менее, это трудно понять, что вы хотите достичь .. Насколько я понимаю, вам нужно разобрать PermCondsLimitationsItem поповер значение (ы) класса (в данном случае Заказчик) на основе ли PermissionsListHeader значение атрибута класса равно «Консультирование по плану покупки жилья». Если это так, то сохраните значение PermCondsLimitationsItem Popover атрибут класса.

Итак, следующая логика должна это сделать.

  1. Разбираем < h3> и проверить начальное условие:

    // h3 [@ класс = 'PermissionsListHeader'] // текст()

  2. Если значение атрибута равно «Консультирование по плану внутренней покупки» parse PermCondsLimitationsItem Popover класс.

    // Ли [@ класс = 'PermCondsLimitationsItem поповер'] // Текст()

Если условие не выполнено, просто поставить пробел и т.д.

0

Если вы хотите, чтобы получить класс элемента содержащий конкретный текст, который вы можете использовать следующие: XPath

//h3[text()='Advising on a home purchase plan']/@class 

Если вам нужно, чтобы получить весь Див, использование:

//div[text()='Advising on a home purchase plan'] 

Ваше требование не ясно. Если это не то, что вы ищете, пожалуйста, объясните больше с ожидаемым выходом.