4

我想确保使用 HtmlAgility 包生成的 HTML 是有效的 HTML5。

例如,以下创建一个空的 HTML5 文档。我将拥有其他类似的功能来创建更复杂的文档。我想要验证我没有搞砸什么并且生成的 HTML 格式正确且有效的测试。

public static String CreateEmptyHtmlDoc()
{
    var hd = new HtmlDocument();
    var doctype = hd.DocumentNode.SelectSingleNode("/comment()[starts-with(.,'<!DOCTYPE')]");
    if (doctype == null)
        doctype = hd.DocumentNode.PrependChild(hd.CreateComment());
    doctype.InnerHtml = "";

    hd.DocumentNode.AppendChild(
      HtmlNode.CreateNode(
        "<HTML><HEAD><META CHARSET=\"UTF-8\"><TITLE></TITLE></HEAD><BODY></BODY></HTML>"));
    return hd.DocumentNode.OuterHtml;
}

我将如何使用 HtmlAgility Pack 构建“html5 验证器”,我可以在其中执行以下操作:

Assert.IsTrue(IsValidHtml5(CreateEmptyHtmlDoc()));

谢谢。

4

1 回答 1

3

w3c 提供免费的在线验证器。您可以编写一个包装器来提交您生成的文档以供验证。通过直接输入验证可能是最简单的自动化选项。HTML5 验证是实验性的。如果您大规模执行此操作,请检查他们的服务条款。

http://validator.w3.org/#validate_by_input+with_options

validator.nu通过 RESTful API 提供类似的服务。

于 2012-05-21T22:12:58.747 回答