我想知道是否有办法使用免费服务验证驻留在磁盘上的HTML 文件。例如,Windows窗体应用程序将使用文件信息调用服务,然后服务执行验证并将结果发送回客户端。通过验证,我的意思是语法检查。 W3C验证器要求网址如下:https:\ www ....并且不接受 "文件:/// C:/Users/Owner/..."例如。
有这样的服务吗?
是否有类似的服务(也可以从Windows窗体调用)来格式化HTML文本?
答案 0 :(得分:1)
W3C validator还有另外两个。
您可以upload a file或directly放置要测试的HTML。您的服务应该使用这两个中的一个,然后返回结果并将它们传递给WinForms应用程序。
除了URL选项之外,W3C validator还有另外两个。
您可以upload a file或directly放置要测试的HTML。您的服务应该使用这两个中的一个,然后返回结果并将它们传递给WinForms应用程序。
string htmlToCheck = "<!DOCTYPE html><html><head><title>non empty</title></head></html>";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36");
using (var data = new MultipartFormDataContent("------WebKitFormBoundary"))
{
using (var html = new StringContent(htmlToCheck))
using (var prefill = new StringContent("0"))
using (var doctype = new StringContent("inline"))
using (var prefill_doctype = new StringContent("html401"))
using (var group = new StringContent("0"))
{
data.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data");
data.Add(html, "fragment");
data.Add(prefill, "prefill");
data.Add(doctype, "doctype");
data.Add(prefill_doctype, "prefill_doctype");
data.Add(group, "group");
var result = await client.PostAsync("https://validator.w3.org/nu/", data);
Console.WriteLine(await result.Content.ReadAsStringAsync());
}
}
要获得执行验证结果,您需要解析响应HTML。