У меня есть несколько файлов, из которых мне нужно извлечь таблицы, содержащие данные. Проблема в том, что у таблиц нет идентификаторов, поэтому мне приходится искать по содержимому (которое постоянно в каждом файле). В каждом файле есть несколько таблиц, и интересующая таблица не имеет постоянного XPath.
<table border="0" cellspacing="0" cellpadding="0" style="BORDER-COLLAPSE: collapse" bordercolor="#111111">
<tbody>
<tr>
<td class="s">CONSTANT_TEXT</td>
<td class="l">CHANGING_VALUE</td>
</tr>
<tr>
<td class="s"> </td>
<td class="l"><a style="" id="CONSTANT_ID" href="mailto: XXXX</a>
</td>
</tr>
</tbody>
</table>
Как мне: 1. Поиск на основе CONSTANT_TEXT CONSTANT_TEXT возвращает значение 2-го TD CHANGING_VALUE, без зная путь (у него нет идентификатора, и его позиция меняется от файла к файлу). 2. Поиск на основе CONSTANT_TEXT CONSTANT_TEXT, возврат родительской таблицы этого TD
Я сделал поиск и вернул CONSTANT_TEXT с помощью Html Agility Pack, затем перебирал XPath вверх, пока таблица не была достигнута *. 1006 *
var output= document.DocumentNode.SelectNodes("//a[@id='CONSTANT_ID']");
output[0].XPath ="/html[1]/body[1]/table[1]/thead[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[2]/td[2]/a[1]"
Мой план состоял в том, чтобы перебрать каждый вывод и получить XPath для самой низкой встречающейся таблицы, table [1], а затем извлечь данные.
Спасибо, Майк