是否可以在本地磁盘上验证HTML文件?

时间:2017-08-27 09:29:47

标签: html winforms

我想知道是否有办法使用免费服务验证驻留在磁盘上的HTML 文件。例如,Windows窗体应用程序将使用文件信息调用服务,然后服务执行验证并将结果发送回客户端。通过验证,我的意思是语法检查。 W3C验证器要求网址如下:https:\ www ....并且不接受 "文件:/// C:/Users/Owner/..."例如。

有这样的服务吗?

是否有类似的服务(也可以从Windows窗体调用)来格式化HTML文本?

1 个答案:

答案 0 :(得分:1)

除了URL选项之外,

W3C validator还有另外两个。

您可以upload a filedirectly放置要测试的HTML。您的服务应该使用这两个中的一个,然后返回结果并将它们传递给WinForms应用程序。

除了URL选项之外,

W3C validator还有另外两个。

您可以upload a filedirectly放置要测试的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。