次のような HTML 文字列を解析する必要があります。
<widget attribute="1">
<header>
<table>
</header>
<item>
<tr><td>content</td></tr>
</item>
<footer>
</table>
</footer>
</widget>
私は Html Agility Pack を使用しており、すべての「ウィジェット」を見つけることができます。
HtmlDocument doc = new HtmlDocument();
doc.OptionAutoCloseOnEnd = false;
doc.OptionOutputAsXml = false;
doc.LoadHtml(htmlString);
HtmlNodeCollection widgets = doc.DocumentNode.SelectNodes("//widget");
私の問題は、ウィジェット ノードのすべての子ノードを取得しようとするときです。HTMLAgility はすべてのタグを自動的に閉じるため、ヘッダー、アイテム、およびフッター ノードを正しく取得できません。Agility によって生成される出力は次のとおりです。
<header>
<table>
</table></header>
<item>
<tr>
<td><p>Riga n.1</p></td>
</tr>
</item>
<footer>
</footer>
ヘッダーの Table タグを閉じ、フッターの Table タグを非表示にします。これらのタグを閉じないままにする方法はありますか? LoadHtml メソッドのロジックに関するドキュメントを検索しようとしましたが、何も見つかりませんでした。オプションで遊ぶ必要があると思います。
手伝って頂けますか?