是否有用于 .NET 的 HTML 清理器可以解析 HTML 并(例如)将其转换为更机器友好的格式,例如XHTML?
我已经尝试过 HTML Agility Pack,但即使是相当 简单的示例 也无法正确解析。
举一个应该正确解析的 HTML 示例:
<html><title>test</title>
<body>
<ul><li>TestElem1
<li>TestElem2
<li>TestElem3 List:
<ul><li>Nested1
<li>Nested2</li>
<li>Nested3
</ul>
<li>TestElem4
</ul>
<p>paragraph 1
<p>paragraph 2
<p>paragraph 3
</body></html>
li
标签不需要关闭(参见规范),标签也不P
需要。换句话说,上面的样本应该被解析为:
<html><title>test</title>
<body>
<ul><li>TestElem1</li>
<li>TestElem2</li>
<li>TestElem3 List:
<ul><li>Nested1</li>
<li>Nested2</li>
<li>Nested3</li>
</ul></li>
<li>TestElem4</li>
</ul>
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
</body></html>
由于目标是在各种机器上使用该库,因此需要回退到本机代码(例如HTML Tidy的包装器)是一个很大的缺点,这将需要额外的部署麻烦并牺牲平台独立性,更不用说在沙盒场景。
有什么建议么?回顾一下,我正在寻找:
- 一个 HTML 清洁器 ala HTML Tidy
- 必须能够处理现实世界的 HTML,而不仅仅是 XHTML,至少可以正确读取有效的 HTML 4
- 必须能够转换为更易于处理的 XML 格式
- 应该是一个纯托管的应用程序。