【问题标题】:Xslt and multi-line text (Sitecore)Xslt 和多行文本 (Sitecore)
【发布时间】:2010-02-03 23:16:12
【问题描述】:

我在 xslt 渲染中输出的项目(多行文本)中有一个字段。问题是我的输出中没有显示回车 - 我需要做什么才能让我的 xslt 输出显示回车?

【问题讨论】:

    标签: xslt sitecore multiline


    【解决方案1】:

    使用此模板替换换行符:

    <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>
    

    【讨论】:

    • 非常感谢,这帮助了我!
    【解决方案2】:

    XML 源代码中的回车被忽略为空格。 (真的,所有连续的空白字符都压缩为一个空格。)但是,也许其中一个可以代替普通的回车符?

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

    或者

    This text has&#10;a newline
    

    【讨论】:

    • 问题是用户在文本框中输入文本 - 这被保存为“文本框倍数”(以站点核心术语)。然后当显示文本时,所有回车都是不显示的。我不可能让用户输入特殊字符来回车;-)
    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多