是否使用类似HTML的功能管理(.NET)库?

是否使用类似HTML的功能管理(.NET)库?,.net,html-parsing,htmltidy,.net,Html Parsing,Htmltidy,是否有一个针对.NET的HTML清理程序可以解析HTML并(例如)将其转换为更为机器友好的格式,例如 我尝试过HTML敏捷包,但它甚至无法正确解析示例 要给出应正确解析的HTML示例,请执行以下操作: <html><title>test</title> <body> <ul><li>TestElem1 <li>TestElem2 <li>TestElem3 Li

是否有一个针对.NET的HTML清理程序可以解析HTML并(例如)将其转换为更为机器友好的格式,例如

我尝试过HTML敏捷包,但它甚至无法正确解析示例

要给出应正确解析的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>
由于其目的是在各种机器上使用库,因此需要退回到本机代码(如包装器)是一个很大的缺点,这将需要额外的部署麻烦并牺牲平台独立性,更不用说在沙盒场景中是不可能的了

有什么建议吗? 总而言之,我正在寻找:

  • HTML清理器和HTML清理器
  • 必须能够处理现实世界的HTML,而不仅仅是XHTML,至少正确阅读有效的HTML4
  • 必须能够转换为更易于处理的XML格式
  • 应该是一个纯托管的应用程序

试试看。​​​​​​​​​​​​​​​​​​

我还没见过整洁管理,如果我还需要类似的东西,我会看一看。然而,你的时间安排是不可思议的,因为我两周前写了一个补丁,在HTML agility pack中添加了对可选结束标记的支持:-我希望他们能集成它,就这样。看起来TidyManaged是一个包装器,而不是一个端口;这有点不方便,因为它在silverlight之类的环境中不起作用,而且需要知道编译时将在哪个平台上执行。尽管如此,对于许多应用来说,这些限制并不是问题。我在我的博客中列出了更多的HTML TidyLib for.Net的实现:-)很好的总结。这是一个棘手的问题;我不太确定我是否完全信任Html敏捷包。还有Majestic 12解析器,它听起来很健壮,但它实际上更像一个标记器——它不会修复或隐藏诸如缺少结束标记之类的东西。有很多整洁的,但即使整洁也不是完美的;如果html格式不正确(不仅仅是嵌套错误),tidy可能会拒绝完全处理输入,这使得在没有人工交互的情况下很难使用它(对于网站编辑器来说这很好,而对于搜索引擎来说则更少)。
<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>