由HtmlAgility Pack创建的测试HTML有效

时间:2012-05-21 22:06:45

标签: c# html html5 html-agility-pack

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

例如,以下内容创建一个空的HTML5文档。我将有其他的simliar函数,将创建更复杂的文档。我想要测试验证我没有搞砸了什么,结果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()));

感谢。

1 个答案:

答案 0 :(得分:3)

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

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

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