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