HTML中呈现的HTML不正确

时间:2009-01-13 14:57:21

标签: html vb.net xslt line-breaks

我试图在VB.NET中使用字符串“<BR>”并通过XSLT将其转换为HTML。但是,当HTML出现时,它看起来像这样:

&lt;BR&gt;

我只能假设它继续并尝试渲染它。有什么方法可以将&lt;/&gt;转换回括号中,这样我就可以获得换行了吗?

5 个答案:

答案 0 :(得分:5)

检查XSLT:

<xsl:output method="html"/>

编辑:评论解释

默认情况下,XSLT输出为XML(1),这意味着它将转义任何重要字符。您可以使用属性disable-output-escaping="yes"(简介here)在特定实例中覆盖此项,但更强大的是将输出更改为HTML的显式值,该值在全局范围内具有相同的优势,如下所示:

  
      
  • 对于脚本和样式元素,请替换所有转义字符(例如   作为&amp;和&gt;)及其实际值   (分别为&amp;和&gt;)。
  •   
  • 对于属性,请替换所有出现的&gt;与&gt;。
  •   
  • 不使用<br><img><input>等空元素   关闭标签或斜杠。
  •   
  • 编写以其存在方式传达信息的属性   反对他们的价值,比如   最小化检查和选择   形式。
  •   
来自实体IBM article

涵盖主题,来自stylusstudio的最新报道here

如果HTML输出符合您的要求,您应该指定HTML输出。

(1)实际上有一个极端情况,输出默认为HTML,但我不认为它是通用的,依赖它是一种迟钝。

答案 1 :(得分:0)

尝试使用<xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text>

进行包装

答案 2 :(得分:0)

不了解XSLT但是..

一种解决方法可能是使用System.Web命名空间中的HttpUtility.HtmlDecode

using System;
using System.Web;

class Program
{
    static void Main()
    {
        Console.WriteLine(HttpUtility.HtmlDecode("&lt;br&gt;"));
        Console.ReadKey();
    }
}

...

答案 3 :(得分:0)

知道了!在选定的答案之上,我也在我的字符串上做了类似的事情:

htmlString = htmlString.Replace("&lt;","<")
htmlString = htmlString.Replace("&gt;",">")

我认为,最后,我可能最终会使用<pre>标签来保留所有内容。

答案 4 :(得分:-1)

字符串“<br>”已经是HTML,因此您只需Response.Write("<br>")

但是你的意思是XSLT,所以我想有一些转变正在发生。在这种情况下,转换肯定应该将其作为节点插入到正确的位置。更好的问题可能会得到更好的答案