1

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

&lt;BR&gt;

我只能假设它继续并尝试渲染它。有什么办法可以将它们转换&lt;/&gt;回括号中,以便获得我正在尝试的换行符?

4

5 回答 5

5

检查 XSLT 是否具有:

<xsl:output method="html"/>

编辑:评论中的解释

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

  • 对于脚本和样式元素,将所有转义字符(例如 & 和 >)替换为其实际值(分别为 & 和 >)。
  • 对于属性,将任何出现的 > 替换为 >。
  • 编写空元素,例如<br><img>和 ,<input>不要使用结束标记或斜杠。
  • 以最小化的形式编写通过存在而不是值来传达信息的属性,例如选中和选择。

来自一篇涵盖该主题的可靠 IBM文章,这里是 stylusstudio 的最新报道

如果 HTML 输出是您想要的 HTML 输出是您应该指定的。

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

于 2009-01-13T14:59:17.993 回答
0

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

于 2009-01-13T15:08:38.847 回答
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();
    }
}

...

于 2009-01-13T15:11:57.903 回答
0

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

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

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

于 2009-01-14T14:06:44.820 回答
-1

字符串 " <br>" 已经是 HTML,所以你可以Response.Write("<br>").

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

于 2009-01-13T15:02:38.593 回答