首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML的C#版本?

HTML的C#版本?
EN

Stack Overflow用户
提问于 2010-10-23 03:37:19
回答 6查看 23.4K关注 0票数 9

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

抱歉,“干净”的意思是“缩进”。HTML格式一点也不错误。这是严格的XHTML

我终于得到了一些关于SGML的东西,但是这是有史以来最荒谬的代码块来缩进一些HTML。

代码语言:javascript
复制
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();
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-11 14:39:21

最新的HTML的C#包装是由Mark完成的,这看起来比您所引用的链接(2003年)要更新得多。同样值得注意的是,Mark为引用提供了可执行文件,而不是从官方站点中提取它们。这应该可以很好地组织和验证您的HTML

票数 9
EN

Stack Overflow用户

发布于 2018-10-18 12:46:10

AngleSharp 100% c#

代码语言:javascript
复制
    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编辑:

代码语言:javascript
复制
 //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); 
票数 14
EN

Stack Overflow用户

发布于 2010-10-23 03:40:44

更新

检查HtmlTextWriterXhtmlTextWriter,用法:用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的接口)。查看新的测试版来玩这个功能。 样本应用程序:

  • 页的修复或生成。你可以用你想要的方式修复一个页面,修改DOM,添加节点,复制节点,嗯.你说吧。
  • 网络扫描仪。您可以很容易地通过一串XPATH查询访问img/src或/href。
  • 刮网器。例如,您可以轻松地将任何现有的网页分解为RSS提要,只需一个XSLT文件作为绑定。提供了这方面的一个例子。

此外,您还可以尝试以下实现:HTML Tidy库的托管包装器

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4002346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档