我试过了:
<PRE>
标记在NL字符的注释和编码周围的输出中<BR>
标记(不会在HTML中解码)这可以在不重新设计所有内容的情况下完成吗?
评论中的每个请求,这是实际代码:
<TD>
<xsl:value-of select="//MemoComment"/>
</TD>
<MemoComment>Previous job: Associate, Boston<br/>Test1<br/>Test2</MemoComment>
<MemoComment>Previous job: Associate, Boston &#xA;Test1 &#xA;Test2</MemoComment>
<MemoComment>Previous job: Associate, Boston&lt;br/&gt;Test1<br/>Test2</MemoComment>
<TD>Previous job: Associate, BostonTest1Test2</TD>
<TD>Previous job: Associate, Boston&#xA;Test1&#xA;Test2</TD>
<TD>Previous job: Associate, Boston&lt;br/&gt;Test1<br/>Test2</TD>
在Outlook中无法正确呈现。
答案 0 :(得分:3)
您遇到问题的原因是您使用了<xsl:value-of>
<TD>
<xsl:value-of select="//MemoComment"/>
</TD>
当您确实需要<xsl:copy-of>
<TD>
<xsl:copy-of select="//MemoComment/node()"/>
</TD>
<xsl:value-of>
仅选择所选节点的字符串值。你真正想要的是复制整个节点,包括它包含的元素。然后,您可以将数据保存为格式化的XHTML片段,而无需转义元素语法(输入列表中的格式编号为1)。
经常不鼓励使用disabe-output-escaping="yes"
,因为它可能导致输出格式错误的XML。此外,所有XSLT处理器都没有实现此功能,因为它实际上只在文档被序列化时生效,如果输出文档作为数据结构从处理器传递,则可能没有任何效果。
答案 1 :(得分:1)
尝试在文本中嵌入转义的<br>
元素,并将<xsl:value-of>
元素的disable-output-escaping
属性设置为yes
:
<MemoComment>Previous job: Associate, Boston<br/>Test1<br/>Test2</MemoComment>
<xsl:value-of select="//MemoComment" disable-output-escaping="yes" />