Рассмотрим следующий HTML-код
<tr>
<td>1</td>
<td>2</td>
<td>
<table>
<tbody>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tbody>
</table>
</td>
<td>5</td>
</tr>
Здесь я хочу взять все <td>
элементы, которые являются прямыми потомками в основную строку <tr>
. Это означает, что я хочу взять 1, 2 and 5
.
Код, который я использую
gridRow.Descendants("td")
вернет все элементы <td>
ниже основного узла <tr>
.
Предоставляет ли HtmlAgilityPack функциональность для получения потомков первого уровня (потому что я не могу найти такой метод)?
HtmlNode.Elements("child_name")
- именно то, что вы ищете:
gridRow.Elements("td")
Хорошо, я думаю, что это сработает:
gridRow.Descendants("td").Where(x => x.ParentNode == gridRow)
Это вернет все элементы <td>
, чей прямой родитель является основным элементом <tr>
.