我需要解析这样的 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");
我的问题是当我尝试获取 Widget 节点的所有子节点时。HTMLAgility 会自动关闭我的所有标签,因此我无法正确检索 Header、Item 和 Footer 节点。Agility 生成的输出为:
<header>
<table>
</table></header>
<item>
<tr>
<td><p>Riga n.1</p></td>
</tr>
</item>
<footer>
</footer>
它关闭 Header 中的 Table 标签,并隐藏 Footer 中的 Table 标签。有没有办法让这些标签保持打开状态?我试图搜索有关 LoadHtml 方法逻辑的文档,但没有找到任何东西。我想我需要玩Options。
你能帮助我吗?