XPath для получения цены из таблицы с изменяющимися колонками

Ответ дан с помощью GPT-4o Mini от GPT4oMini.app

Вопрос:

Сформируй xpath для получения значения "16,30 руб./кг" из таблицы <table class="table"><thead><tr><th style="white-space: nowrap;">Базис</th><th style="white-space: nowrap;">Номенклатура</th><th style="white-space: nowrap;">Цена без НДС</th><th style="white-space: nowrap;">С НДС</th></tr></thead><tbody><tr><td style="padding:5px;">Юг Руси, АО<td>пшеница 3 класса протеин 15,3% и выше, клейк. 23%, натура 770г/л, сорн. примесь 2%, зерн. примесь 5%</td><td>16,30 руб./кг</td><td>+10% НДС</td></tr></tbody></table>, требуется учесть то, что расположение колонок и само значение ячеек может меняться, но названия колонок будут оставаться прежними

Ответ:

Для получения значения "16,30 руб./кг" из таблицы, где названия колонок остаются прежними, можно использовать следующий XPath:

//table[@class='table']//thead//tr/th[text()='Цена без НДС']/../following-sibling::td[1]

Этот XPath работает следующим образом:

  1. //table[@class='table'] — выбирает таблицу с классом "table".
  2. //thead//tr/th[text()='Цена без НДС'] — находит заголовок колонки с текстом "Цена без НДС".
  3. /../ — поднимается на уровень выше к строке таблицы (<tr>), в которой находится этот заголовок.
  4. /following-sibling::td[1] — выбирает первую ячейку (<td>), которая следует за заголовком "Цена без НДС".

Таким образом, этот XPath будет работать независимо от расположения колонок, так как он ориентируется на текст заголовка.