如何使用 C# 验证 html 文件?
Posted
技术标签:
【中文标题】如何使用 C# 验证 html 文件?【英文标题】:How do I validate a html file with C#? 【发布时间】:2011-04-20 17:06:46 【问题描述】:我有一个接收 html 文件的 C# 应用程序。我想解析和验证它。在输出时它将返回一个错误列表或我的 html 是有效的。
有人知道我该怎么做吗?
【问题讨论】:
What is the best way to parse html in C#? 的可能重复项 这个问题的验证部分使它与简单解析 HTML 的问题截然不同。 没错,我对解析html不感兴趣,我有兴趣验证它是否存在可能的错误。 【参考方案1】:框架版本 1.0 (!) Microsoft.mshtml.dll 中有一个不起眼的 DLL,这是 框架中 处理 DOM 的唯一方法。如果 HTML 是 XHTML 并且是有效的 XML,那么您可以使用 XML,否则这是唯一的机会。
【讨论】:
我很惊讶这是处理 DOM 的唯一方法。 hmmm,请解释一下如何使用 xml 验证一个非常复杂的 html 文件。我也想过这个,我认为这不是最好的方法。 在什么框架下?没有人提到框架。 (哦,我们必须诉诸名字吗?) 它并不那么晦涩,它是 Internet Explorer 的 PIA。不是框架的一部分,它是一个 COM 互操作库。 IE 是否是一个好的 HTML 验证器,咳咳,值得商榷。【参考方案2】:我会运行W3C Markup Validation service 的本地实例并通过API 与其通信
【讨论】:
我不知道有这样的 API,很好的发现。【参考方案3】:您可以使用 HTML Tidy。 .NET 有一个包装器,名为 TidyManaged
【讨论】:
TidyManaged 没有提供任何功能性的 dll 对此提出了一些问题,包括文件输出甚至不起作用(我确认了它,尽管它显然已经被修补了)。在问题页面上有一个指向 freethenation 版本的链接,该版本需要 libtidy32.dll 和 libtidy64.dll,所以我按照上面的 gcores 链接并适当地重命名了 32 位和 64 位版本。花了一段时间才弄清楚,所以我想我会在这里发布。以上是关于如何使用 C# 验证 html 文件?的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net Core-在使用 javascript 或 C# 上传之前选择和验证 excel 文件?
如何在使用本地 CRL 文件(C#)的验证过程中检查客户端证书吊销
如何避免 SaveFileDialog C# 中的文件名验证