【问题标题】:html decoded string displaying code in literalhtml解码字符串以文字显示代码
【发布时间】:2015-06-30 16:05:06
【问题描述】:

我有一个 html 编码字符串,我想从 xml 文档中提取并以文字形式显示。我的代码如下所示:

XML

<test>&amp;lt;p&amp;gt;Here is a &amp;lt;em&amp;gt;test&amp;lt;/em&amp;gt; to &amp;lt;strong&amp;gt;consider&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
</test>

后面的代码

ccXML.Load(Server.MapPath("~/customContent.xml"));
var welcomeMessage = ccXML.SelectSingleNode("/test");
string message = welcomeMessage.InnerXml;
storyBox.Text = Server.HtmlDecode(message);

HTML

<asp:Literal ID="storyBox" Mode="PassThrough" runat="server"></asp:Literal>

目前,文字正在像这样向用户显示html标签

"<p>Here is a <em>test</em> to <strong>consider</strong></p>." 

相反,我想要的是让标签执行(即格式化文本)。任何人都看到我要去哪里错了吗?提前感谢您的帮助。

编辑:有人在另一个线程(C# ASP.net render HTML String ),但是,解决方案(将我的字符串转换为字符串)并不能解决问题

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    当我对目标 HTML 进行编码时,我得到了这个:

    &lt;p&gt;Here is a &lt;em&gt;test&lt;/em&gt; to &lt;strong&gt;consider&lt;/strong&gt;&lt;/p&gt;
    

    当我在 &lt;test&gt; 元素中使用它时,这对我来说效果很好

    【讨论】:

    • 这也适用于我。我发现在将 html 字符串添加到我的 xml 文档时,我使用了不必要的 Server.HtmlEncode()。删除之后,添加到 xml 文档中的文本现在看起来像您的示例,并且所有标签在添加到文字时都会正确执行。谢谢!
    • 这是有道理的 - 如果您将原始字符串解码两次,那么它可以工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 2018-12-29
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多