我正在使用XSLT将股票列表呈现为HTML,并希望该列表以逗号分隔。假设我要使用xsl:for-each...
<xsl:for-each select="/Tickers/Ticker">
<xsl:value-of select="TickerSymbol"/>,
</xsl:for-each>
什么是去掉尾随逗号的最佳方法?是否有比xsl:for-each更好的方法?
我正在使用XSLT将股票列表呈现为HTML,并希望该列表以逗号分隔。假设我要使用xsl:for-each...
<xsl:for-each select="/Tickers/Ticker">
<xsl:value-of select="TickerSymbol"/>,
</xsl:for-each>
<xsl:for-each select="/Tickers/Ticker">
<xsl:if test="position() > 1">, </xsl:if>
<xsl:value-of select="TickerSymbol"/>
</xsl:for-each>
<xsl:value-of select="string-join(/Tickers/Ticker, ',')"/>
<xsl:template match="/">
<!-- Output first element without a preceding comma -->
<xsl:apply-templates select="/Tickers/Ticker[position()=1]" />
<!-- Output subsequent elements with a preceding comma -->
<xsl:apply-templates select="/Tickers/Ticker[position()>1]">
<xsl:with-param name="separator">,</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="Ticker">
<xsl:param name="separator" />
<xsl:value-of select="$separator" /><xsl:value-of select="TickerSymbol" />
</xsl:template>
我知道你说XSL 2.0不是一个选项,而且问题已经存在很长时间了,但是对于所有正在寻找实现你想要达到目标的人:
XSL 2.0或更高版本有更简单的方法。
<xsl:value-of separator=", " select="/Tickers/Ticker/TickerSymbol" />