Сформируй xpath для взятия текста "Юг Руси, АО" из элемента <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>, где индексы колонок и содержание могут меняться, а ориентиром должно служить наименование колонки th
Для извлечения текста "Юг Руси, АО" из таблицы, где индексы колонок и содержание могут меняться, можно использовать XPath, который будет ориентироваться на заголовок колонки. В данном случае заголовок колонки, который соответствует нужному значению, отсутствует, поэтому мы будем использовать индекс заголовка "Базис".
Вот пример XPath, который находит текст в первой колонке, основываясь на заголовке "Базис":
//table[@class='table']//th[text()='Базис']/../following-sibling::td[1]/text()
Объяснение:
//table[@class='table']
— выбирает таблицу с классом "table".//th[text()='Базис']
— находит заголовок колонки с текстом "Базис"./../
— поднимается на уровень выше к родительскому элементу <tr>
.following-sibling::td[1]
— выбирает первую ячейку <td>
(которая соответствует колонке "Базис")./text()
— извлекает текст из выбранной ячейки.Этот XPath будет работать, даже если порядок колонок изменится, при условии, что заголовок "Базис" останется на месте.