【发布时间】:2011-09-20 18:01:25
【问题描述】:
因此,我们在编辑模式下使用 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 字符串粘贴到该方法中,它会返回“假定”正确的 XHTML。但是,它没有通过 XHTML 检查,它返回的数据只是一个基本的
<html><head></head><body></body></html>
格式。因此,不是正确的 XHTML。
那么,我怎样才能格式化它以实际输出正确的 XHTML? MindShares 网站上没有太多 SGML 文档了,所以不知道从哪里开始。
本质上,我们需要来自 WebBrowser 控件的 HTML(它不是有效的 XHTML)输出到 XHTML,以便我们可以将它附加到 XMPP.msg.Html 元素(仅有效的 XHTML)。如果系统检测到 HTML 中的任何代码无效,它会将 XMPP.msg.Html 标记为空白,因此我知道上述方法不起作用。
谢谢!
【问题讨论】:
标签: c# html xhtml browser xmpp