如何让这个 HTML 显示格式化,没有标签?
Posted
技术标签:
【中文标题】如何让这个 HTML 显示格式化,没有标签?【英文标题】:How do I get this HTML to display formatted, without tags? 【发布时间】:2011-12-18 00:48:06 【问题描述】:我创建了一个博客(用于编码练习)。我使用富文本编辑器(ckeditor)并将帖子保存到数据库中。当我拉出帖子以显示在 Label.Text 中时,它会显示所有 html 标记:
<p><strong>there was</strong> once a fox that lived</p>
<p> in the<span style="color: #ff0000"> woods</span></p>
如何以正确的格式(段落、颜色等)显示帖子,但没有 HTML 标记?
【问题讨论】:
请确认您的输出中没有填充&gt;
和&lt;
Justin808:您好,该页面根据我的原始帖子逐字显示/显示 HTML 标签。但是当我查看源代码时,所有的 都替换为 > 和 <。如何让浏览器读取 HTML 标签,而不是使用 > 并忽略标签?
nanonerd:请参阅下面 ChrisF 的答案。您需要使用asp:Literal
,而不是asp:Label
。
【参考方案1】:
仅供参考:文字产生的结果与标签相同......但我得到了答案,这有效:
string strHTML = "<p>Hello World!</p>";
Label.Text = Server.HtmlDecode(strHTML);
【讨论】:
【参考方案2】:HTML 是格式,所以要让文本显示你想要的方式,你需要将文本 as HTML 插入到你的页面中,而不是插入文本进入 Label.Text - 它将被视为纯文本并显示所有标记。
因此,与其创建标签,不如使用文字:
<asp:Literal runat="server" ID="EditorOutput">
然后在你的页面加载:
protected void Page_Load(object sender, EventArgs e)
EditorOutput.Text = theText;
theText
将是字符串:
<p><strong>there was</strong> once a fox that lived</p> <p> in the<span style="color: #ff0000"> woods</span></p>
从您的数据库中读取。
如果您的字符串是Encoded,则必须调用Server.HtmlDecode
,以确保将任何&lt;
和&gt;
代码转换回<
和>
。
Source
【讨论】:
【参考方案3】:我不明白。 你的意思是,当你检查帖子时,你会得到类似的东西:
<b>there was</b> once a fox that lived...
将它保存为 .html 格式可能是个好主意,因为 RTF 从来都不是用于互联网的。 听起来您一开始就不需要使用数据库。 XML 更适合这种任务。
【讨论】:
他没有使用富文本格式,而是使用“富”文本编辑器(即所见即所得编辑器)来生成 HTML 标记。至于不使用数据库来支持 XML 文件:什么?以上是关于如何让这个 HTML 显示格式化,没有标签?的主要内容,如果未能解决你的问题,请参考以下文章
Html—让textarea标签中的内容原格式输出的两种办法