Как назначить значение для указанной переменной c xpath? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть код html, как показано ниже.

<div class="perc">
  <div class="blc-p">
    <span class="green_r " style="width:75%">75,0%</span>
  </div>
  <div class="blc-p">
    <span class="yellow_r small" style="width:14%"></span>
     14,2%
  </div>
  <div class="blc-p">
    <span class="red_r small" style="width:10%"></span> 
     10,8%
  </div>
</div>

Из приведенного выше html я получаю xpath для class = "red_r small", который:

red = doc.xpath('.//div[@class="perc"]/div[3]/span[@class="red_r small"]')

Я пытаюсь присвоить значение ' red 'в соответствии с позицией в div класса "per c", такой что:

, если' red 'находится в первом div из класса "bl c -p", значение красный становится 1. если «красный» находится во втором div класса «bl c -p», значение красного становится «N». если 'red' находится в третьем div класса "bl c -p", значение red становится равным 2.

В приведенном выше примере red = 2, потому что оно находится в третьем div класса "бл c -p".

Как мне добиться этого с помощью xpath и python3? Спасибо

1 Ответ

0 голосов
/ 01 марта 2020

Вы можете использовать функции для последовательностей https://www.w3schools.com/xml/xsl_functions.asp#sequence

Ваше решение выглядит примерно так, где 3 - индекс элемента:

index-of(//span, //span[contains(@class, "red")])

enter image description here

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