string input = @"<table>
<tr>
<td>Text A</td>
</tr>
<tr>
<td>
<table> <!-- Notice this is an inner scope table -->
<tr>
<td>Text B</td>
</tr>
</table>
</td>
</tr>
</table>
<table>
<tr>
<td>
<table> <!-- Notice this is an inner scope table -->
<tr>
<td>Text C</td>
</tr>
</table>
</td>
</tr>
</table>
<table>
<tr>
<td>Text D</td>
</tr>
</table>"
У меня есть серия таблиц в указанном выше строковом формате.
Я хочу извлечь содержимое на первом уровне из всех <tr>
, где ожидаемое извлеченное содержимое:
Text A
<table>
<tr>
<td>Text B</td>
</tr>
</table>
<table>
<tr>
<td>Text C</td>
</tr>
</table>
Text D
Использование HtmlAgilityPack:
var htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(input);
var output = htmlDocument.DocumentNode
.SelectNodes("table/tr");
Внутренние таблицы выбираются вместо внешних таблиц. Я не могу понять, как "обеспечить, чтобы только родители tr
были забраны".