我正在尝试<BR>
在 VB.NET 中获取字符串“”并通过 XSLT 将其转换为 HTML。但是,当 HTML 出来时,它看起来像这样:
<BR>
我只能假设它继续并尝试渲染它。有什么办法可以将它们转换</>
回括号中,以便获得我正在尝试的换行符?
我正在尝试<BR>
在 VB.NET 中获取字符串“”并通过 XSLT 将其转换为 HTML。但是,当 HTML 出来时,它看起来像这样:
<BR>
我只能假设它继续并尝试渲染它。有什么办法可以将它们转换</>
回括号中,以便获得我正在尝试的换行符?
检查 XSLT 是否具有:
<xsl:output method="html"/>
编辑:评论中的解释
默认情况下,XSLT 输出为 XML(1),这意味着它将转义任何重要字符。您可以在特定实例中使用属性disable-output-escaping="yes"
(intro here ) 覆盖它,但更强大的是将输出更改为 HTML 的显式值,这在全局范围内提供相同的好处,如下所示:
- 对于脚本和样式元素,将所有转义字符(例如 & 和 >)替换为其实际值(分别为 & 和 >)。
- 对于属性,将任何出现的 > 替换为 >。
- 编写空元素,例如
<br>
、<img>
和 ,<input>
不要使用结束标记或斜杠。- 以最小化的形式编写通过存在而不是值来传达信息的属性,例如选中和选择。
来自一篇涵盖该主题的可靠 IBM文章,这里是 stylusstudio 的最新报道
如果 HTML 输出是您想要的 HTML 输出是您应该指定的。
(1) 实际上存在输出默认为 HTML 的极端情况,但我认为它不是通用的,依赖它有点迟钝。
尝试用<xsl:text disable-output-escaping="yes"><br></xsl:text>
不知道 XSLT 但是..
一种解决方法可能是使用System.Web 命名空间中的HttpUtility.HtmlDecode。
using System;
using System.Web;
class Program
{
static void Main()
{
Console.WriteLine(HttpUtility.HtmlDecode("<br>"));
Console.ReadKey();
}
}
...
知道了!除了选定的答案之外,我还在我的字符串上做了类似的事情:
htmlString = htmlString.Replace("<","<")
htmlString = htmlString.Replace(">",">")
不过,我认为最终,我可能最终会使用<pre>
标签来保存所有内容。
字符串 " <br>
" 已经是 HTML,所以你可以Response.Write("<br>")
.
但是您的意思是 XSLT,所以我想有一些转换正在进行。在这种情况下,转换肯定应该将其作为节点插入到正确的位置。更好的问题可能会得到更好的答案