Я использую HtmlAgilityPack для получения следующего html (обратите внимание на вложенную таблицу):
<table class="123">
<tr>
<table class="789">
<tr>
<td>abc</td>
</tr>
<tr>
<td>def</td>
</tr>
</table>
</tr>
<tr>
<td>info 1</td>
</tr>
<tr>
<td>info 2</td>
</tr>
<tr>
<td>info 3</td>
</tr>
</table>
Теперь я пытаюсь найти умный способ получить некоторую информацию из родительской таблицы и некоторую информацию из вложенной таблицы ...
Пока у меня есть следующее:
var parentTable = document.DocumentNode.SelectNodes("//table[@class='123']").FirstOrDefault();
var nestedTable = parentTable.SelectNodes("//table[@class='789']").FirstOrDefault();
Теперь я могу поиграться с вложенной таблицей и получить то, что хочу (abc, def) ...
Но когда я пытаюсь получить <tr>
из родительской таблицы, вот так:
var parentTableRows = parentTable.SelectNodes(".//tr");
Кажется, он включает (в коллекцию) <tr>
из вложенной таблицы ...
Другими словами, согласно приведенному выше HTML-коду, я ожидал получить коллекцию из 4 <tr>
, но, поскольку она включает в себя <tr>
из вложенной таблицы, я получаю коллекцию 6 <tr>
х
Как я могу пропустить первый <tr>
, который содержит вложенную таблицу, чтобы я мог поиграть и получить необходимую информацию (info1, info2, info3)
(надеюсь, я понимаю ...)
Заранее спасибо!