我有一个像
这样的字符串*this is text1 * this is text2 *this is text3
我希望输出通过在我的pdf中使用*来分割文本,如
this is text1
this is text2
this is text3
我的文字来自xslt的@value
<fo:block linefeed-treatment="preserve" >
<xsl:value-of select="@key"/>
</fo:block>
<fo:block linefeed-treatment="preserve" >
<xsl:value-of select="@value"/>
</fo:block>
<fo:block linefeed-treatment="preserve" >
<xsl:text>
</xsl:text>
</fo:block>
</fo:block>
如何分割字符串产生输出。请建议。我正在使用xsl 1.0
答案 0 :(得分:4)
首先调用一个模板,为您执行拆分,而不是value-of
:
<xsl:call-template name="split">
<xsl:with-param name="text" select="@value"/>
</xsl:call-template>
以下是命名模板:
<xsl:template name="split">
<xsl:param name="text" select="."/>
<xsl:if test="string-length($text) > 0">
<xsl:variable name="output-text">
<xsl:value-of select="normalize-space(substring-before(concat($text, '*'), '*'))"/>
</xsl:variable>
<xsl:if test="normalize-space($output-text) != ''">
<xsl:value-of select="$output-text"/>
<xsl:text>
</xsl:text>
</xsl:if>
<xsl:call-template name="split">
<xsl:with-param name="text" select="substring-after($text, '*')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
输入(@value
的值):
*this is text1 * this is text2 *this is text3
输出:
this is text1
this is text2
this is text3