2
是否有一個.NET的HTML清理器可以解析HTML並(例如)將其轉換爲更加機器友好的格式,如XHTML?具有HTML Tidy-like功能的託管(.NET)庫?
我試過了HTML敏捷包,但是卻無法正確解析,即使是fairlysimple的例子。
爲了讓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
標籤不需要關閉(see specification),和neither do P
tags。換句話說,上述樣品應被解析爲:
<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清潔鼻翼HTML整潔
- 必須能夠應對現實世界的HTML,不僅僅是XHTML,至少是正確讀取有效的HTML 4
- 必須能夠轉換爲更容易處理的XML格式
- 應該是一個純粹的管理應用程序。
我還沒有看到TidyManaged,如果我又需要類似的東西,我要一窺視。然而,你的時間是不可思議的,因爲我*寫了一個補丁,在兩週前爲HTML敏捷包添加了對可選結束標記的支持:http://htmlagilitypack.codeplex.com/workitem/29218 - 我希望他們將整合它,那就是那個。 – 2011-06-03 08:25:08
它看起來像TidyManaged是一個包裝,而不是一個端口;這稍微有點不方便,因爲它不適用於像silverlight這樣的東西,它需要你知道你將在編譯時執行的平臺。儘管如此,對於許多用途來說,這些限制並不是問題。 – 2011-06-03 08:27:00
我在我的博客http://geekswithblogs.net/mnf/archive/2011/06/08/implementations-of-html-tidylib-for-.net.aspx上列出了一些用於.Net的HTML TidyLib的實現 – 2011-06-08 11:46:13