从WebBrowser到有效的XHTML的C#HTML

从WebBrowser到有效的XHTML的C#HTML,第1张

概述因此,我们在编辑模式下使用webBrowser控件,允许人们输入文本,然后将该文本发送到服务器以供所有人查看. IE,它是一个HTML输入框. 该框的HTML输出不是标准的XHTML,因为它只是一个webBrowser控件,所以我需要一种方法将任何错误的HTML转换为XHTML.我读了SGML,后来又用过: private static string Html2Xml(string txtHtml 因此,我们在编辑模式下使用webbrowser控件,允许人们输入文本,然后将该文本发送到服务器以供所有人查看. IE,它是一个HTML输入框.

该框的HTML输出不是标准的xhtml,因为它只是一个webbrowser控件,所以我需要一种方法将任何错误的HTML转换为xhtml.我读了SGML,后来又用过:

private static string HTML2Xml(string txtHTMLString)    {        var xhtml = new Sgml.SgmlReader();        var sw = new StringWriter();        var w = new XmlTextWriter(sw);        xhtml.DOCTYPE = "HTML";        xhtml.inputStream = new StringReader(txtHTMLString);        while ((!xhtml.EOF))        {            w.WriteNode(xhtml,true);        }        w.Close();        return sw.ToString();    }

我基本上将HTML字符串设置为该方法,并返回“suposed”正确的xhtml.但是,它没有传递xhtml检查,它返回的数据只是一个基本的

<HTML><head></head><body></body></HTML>

格式.因此,不适合xhtml.

那么,我如何格式化以实际输出正确的xhtml? MindShares站点上的SGML文档已经不多了,所以不知道从哪里开始.

本质上,我们需要Webbrowser控件中的HTML(无效的xhtml)输出到xhtml,以便我们可以将它附加到XMPP.msg.HTML元素(仅限有效的xhtml).如果系统检测到HTML中的任何代码无效,则会将XMPP.msg.HTML标记为空白,因此我知道上述方法无效.

谢谢!

解决方法 建议使用TinyMCE或HTMLAgilityPack(可作为Nuget包或来自codeplex).

TinyMCE允许用户使用适当的格式控件执行富文本编辑,并输出生成的HTML.

另一方面,HTMLAgilityPAck是一个库,它允许您传入由您的方法生成的HTMLStream,并将其输出为有效的xhtml流.

在HTMLAgilityPAck中使用此示例的粗略示例如下:

var sb = new StringBuilder(); var stringWriter = new StringWriter(sb);string input = "<HTML><body><p>This is some test test<ul><li>item 1<li>item2<</ul></body>";var test = new HTMLAgilityPack.HTMLdocument();test.LoadHTML(input);test.OptionOutputAsXml = true;test.OptionCheckSyntax = true;test.OptionFixnestedTags = true;test.Save(stringWriter);Console.Writeline(sb.ToString());
总结

以上是内存溢出为你收集整理的从WebBrowser到有效的XHTML的C#HTML全部内容,希望文章能够帮你解决从WebBrowser到有效的XHTML的C#HTML所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存