我想确保使用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()));
感谢。
答案 0 :(得分:3)
w3c提供免费的在线验证器。您可以编写一个包装器,提交生成的文档以进行验证。通过直接输入验证可能是自动化的最简单选项。 HTML5验证是实验性的。如果您大规模地这样做,请检查他们的服务条款。
http://validator.w3.org/#validate_by_input+with_options
validator.nu提供与RESTful API类似的服务。