我只是在寻找一种非常简单的方法来清理一些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();
}发布于 2011-01-11 14:39:21
最新的HTML的C#包装是由Mark完成的,这看起来比您所引用的链接(2003年)要更新得多。同样值得注意的是,Mark为引用提供了可执行文件,而不是从官方站点中提取它们。这应该可以很好地组织和验证您的HTML。
发布于 2018-10-18 12:46:10
AngleSharp 100% c#
var parser = new HtmlParser();
var document = parser.Parse("<html><head></head><body><i></i></body></html>");
var sw = new StringWriter();
document.ToHtml(sw, new PrettyMarkupFormatter());
var HTML_prettified = sw.ToString();sebastian编辑:
//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); 发布于 2010-10-23 03:40:44
更新
检查HtmlTextWriter或XhtmlTextWriter,用法:用HtmlTextWriter格式化Html输出,也许基于HtmlTextWriter的HTML构建会更好?
也请检查:LINQ & Lambda,第3部分: Html敏捷包到LINQ转换器
http://www.manoli.net/csharpformat/,源代码,以防你错过了。
也许你想自己做?这个项目可能会有帮助:Html敏捷包
什么是Html敏捷包(HAP)? 这是一个敏捷的HTML解析器,它构建了一个读/写DOM,并支持普通的XPATH或XSLT (您实际上不需要理解XPATH或XSLT就可以使用它,不要担心.)。它是一个.NET代码库,允许您解析“出网页”的HTML文件。解析器对“真实世界”格式错误的HTML非常宽容。对象模型非常类似于提议的System.Xml,但是对于HTML (或streams)。 Html敏捷包现在支持(通过类似于Linq的接口)。查看新的测试版来玩这个功能。 样本应用程序:
此外,您还可以尝试以下实现:HTML Tidy库的托管包装器
https://stackoverflow.com/questions/4002346
复制相似问题