【问题标题】:Parsing HTML Fragments解析 HTML 片段
【发布时间】:2008-10-30 14:12:54
【问题描述】:

在 C# 中解析 HTML 片段的最佳方法是什么?

就上下文而言,我继承了一个使用大量复合控件的应用程序,这很好,但是很多控件是使用一长串文字控件呈现的,这相当可怕。我正在尝试让应用程序进入单元测试,并且我想让这些控件接受测试,以了解它们是否生成格式良好的 HTML,并在理想的解决方案中验证该 HTML。

【问题讨论】:

  • 如果接受的答案实际上是最佳答案,我认为应该编辑问题标题以反映您不是在解析 HTML,而是在解析 XML。

标签: c# asp.net unit-testing web-standards


【解决方案1】:

看看HTMLAgility 包。它与 .NET XmlDocument 类非常兼容,但它对不干净/有效的 XHTML 的 HTML 更加宽容。

【讨论】:

  • 那个库似乎有点太好了 - 我正在测试代码,所以如果标签保持打开状态会炸毁解析器,这是一件好事。
  • 你可以让它修复代码并输出XHTML——然后比较输入和输出。
【解决方案2】:

如果 HTML 与 XHTML 兼容,则可以使用内置的 System.Xml 命名空间。

【讨论】:

    【解决方案3】:

    我使用SGMLReader 从 HTML 生成有效的 Xml 文档,然后使用 XPath 解析所需的内容或使用 XSLT 解析为另一种格式。 .

    【讨论】:

      【解决方案4】:

      您还可以查看 HTML Tidy 以进行 HTML 解析/清理。我认为他们没有特定的 .NET 库,但您可能能够通过命令行运行二进制文件,或者通过 IKVM 运行 java 库。

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 2011-02-19
        • 2014-12-31
        • 1970-01-01
        • 2011-01-27
        • 2012-09-14
        • 2011-02-01
        • 1970-01-01
        相关资源
        最近更新 更多