我想知道在 xsl 转换中分隔 xml 输出的最佳方法。"position() != last()" 并不总是有效,因为它对输入做出假设。
这个玩具示例演示:
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="//cd">
<xsl:if test="title !='Unchain my heart'">
<xsl:value-of select="title" />
<xsl:if test="position() != last()">
<xsl:text>; </xsl:text> <!-- sometimes the delimiter will end if last element is a duplicate; -->
</xsl:if>
</xsl:if>
</xsl:for-each>
</body>
</html>
</xsl:template>
将导致
... Pavarotti Gala Concert; The dock of the bay; Picture book; Red;
注意结尾的分号。
有任何想法吗?
(此示例中的 xml 数据http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog)