【问题标题】:How do I validate a html file with C#?如何使用 C# 验证 html 文件?
【发布时间】:2011-04-20 17:06:46
【问题描述】:

我有一个接收 html 文件的 C# 应用程序。我想解析和验证它。在输出时它将返回一个错误列表或我的 html 是有效的。

有人知道我该怎么做吗?

【问题讨论】:

  • 这个问题的验证部分使它与简单解析 HTML 的问题截然不同。
  • 没错,我对解析h​​tml不感兴趣,我有兴趣验证它是否存在可能的错误。

标签: c# html parsing validation


【解决方案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 位版本。花了一段时间才弄清楚,所以我想我会在这里发布。
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多