2

是否有用于 .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 格式
  • 应该是一个纯托管的应用程序。
4

1 回答 1

1

试试TidyManaged

于 2011-06-02T05:23:20.977 回答