Xslt和多行文本(Sitecore)

时间:2010-02-03 23:16:12

标签: xslt sitecore multiline

我在项目(多行文本)中有一个字段,我在xslt渲染中输出。问题是我的输出中没有显示carrigae返回 - 我需要做些什么来使我的xslt输出显示carrigae返回?

2 个答案:

答案 0 :(得分:5)

使用此模板替换换行符:

<xsl:template name="br">
    <xsl:param name="text"/>
    <xsl:choose>
        <xsl:when test="contains($text,'&#xa;')">
            <xsl:value-of select="substring-before($text,'&#xa;')"/>
            <br/>
            <xsl:call-template name="br">
                <xsl:with-param name="text">
                    <xsl:value-of select="substring-after($text,'&#xa;')"/>
                </xsl:with-param>
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$text"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

并在您的文字项目上调用它:

<xsl:call-template name="br">
    <xsl:with-param name="text" select="somenode/mytext"/>
</xsl:call-template>

答案 1 :(得分:0)

XML源中的回车符被忽略为空格。 (实际上,所有连续的空白字符都会压缩到一个空格。)但是,也许其中一个可以工作而不是普通的回车?

       <xsl:text>This text has
a newline</xsl:text>

This text has&#10;a newline