HTML Tidy 的 C# 版本?

新手上路,请多包涵

我只是在寻找一种非常简单的方法来清理一些 HTML(可能使用嵌入式 JavaScript 代码)。我尝试 了两个 不同的 HTML Tidy .NET 端口,但都抛出异常……

抱歉,“干净”是指“缩进”。 HTML 根本没有格式错误。它是严格的 XHTML


终于 得到了一些与 SGML 一起工作的东西,但这真的是缩进一些 HTML 的最荒谬的代码块。

 private static string FormatHtml(string input)
{
    var sgml = new SgmlReader {DocType = "HTML", InputStream = new StringReader(input)};
    using (var sw = new StringWriter())
    using (var xw = new XmlTextWriter(sw) { Indentation = 2, Formatting = Formatting.Indented })
    {
        sgml.Read();
        while (!sgml.EOF)
            xw.WriteNode(sgml, true);
    }
    return sw.ToString();
}

原文由 mpen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 342
2 个回答

HTML Tidy 的最新 C# 包装器是由 Mark Beaton 完成的,它似乎比您引用的链接 (2003) 更新。还值得注意的是,Mark 也提供了可执行文件供参考,而不是从官方站点提取它们。这应该可以很好地组织和验证您的 HTML

原文由 wonea 发布,翻译遵循 CC BY-SA 3.0 许可协议

锐角 100% c#

     var parser = new HtmlParser();

    var document = parser.ParseDocument("<html><head></head><body><i></i></body></html>");

    var sw = new StringWriter();
    document.ToHtml(sw, new PrettyMarkupFormatter());

    var HTML_prettified = sw.ToString();

塞巴斯蒂安编辑:

  //old parse method
 var document = parser.Parse("<html><head></head><body><i></i></body></html>");

 //new parse method  -Updated version (Nuget Package AngleSharp 0.16.1):
 var document = await parser.ParseDocumentAsync(Code);


原文由 bh_earth0 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏