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 и привязываясь к названию столбца "Цена без НДС", вы можете использовать следующий XPath-запрос:

//table[@class='table']//tr[td[1][text()='Юг Руси, АО']]//td[3]

Этот запрос делает следующее:

  1. Находит таблицу с классом table.
  2. Находит строку (tr), в которой первый столбец (td[1]) содержит текст "Юг Руси, АО".
  3. Из этой строки выбирает третий столбец (td[3]), который содержит значение "16,30 руб./кг".

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

//table[@class='table']//tr[1]/following-sibling::tr[1]/td[position()=3]

Этот запрос:

  1. Находит первую строку заголовков (tr[1]).
  2. Переходит к следующей строке (following-sibling::tr[1]), которая содержит данные.
  3. Извлекает значение из третьего столбца (td[position()=3]), что соответствует "Цена без НДС".

Таким образом, вы получите нужное значение, не завися от конкретного значения в первом столбце.