嘿,我有一个节点< msg>其中包含
等消息字符串1
string 2 sting3
但是当它渲染时,它会呈现所有一行,如何用< br />替换所有\ n。
我试过
< xsl:value-of select ='replace(msg,“& #xA;”,“< br />”)'/>
但我收到此错误
加载样式表时出错:无效的XSLT / XPath函数。
我该怎么做?
答案 0 :(得分:19)
在您要处理的字符串上调用此模板:
<xsl:template name="break">
<xsl:param name="text" select="string(.)"/>
<xsl:choose>
<xsl:when test="contains($text, '
')">
<xsl:value-of select="substring-before($text, '
')"/>
<br/>
<xsl:call-template name="break">
<xsl:with-param
name="text"
select="substring-after($text, '
')"
/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
像这样(它将在当前节点上工作):
<xsl:template match="msg">
<xsl:call-template name="break" />
</xsl:template>
或者像这样,显式传递一个参数:
<xsl:template match="someElement">
<xsl:call-template name="break">
<xsl:with-param name="text" select="msg" />
</xsl:call-template>
</xsl:template>
我认为您正在使用XSLT 1.0处理器,而replace()是XSLT / XPath 2.0引入的函数。
答案 1 :(得分:-1)
您也可以通过简单的HTML标记实现这一点,
在你的msg之前试试这个TodayCount
标签,然后在msg。
Jayakumar Kulkarni (Consultant) : Remark Jayakumar Kulkarni : Rematr 01 Jayakumar Kulkarni : comment
答案 2 :(得分:-1)
<pre>
Jayakumar Kulkarni (Consultant) :
Rematr 01
Jayakumar Kulkarni (Consultant) :
3rd comment
</pre>
&#13;
试试以上标签