确定xsl:for-each中项目的位置

时间:2016-01-06 03:39:41

标签: xslt

我有一个如下的Xml:

<data>
  <record id="1"/>
  <record id="2"/>
  <record id="3"/>
  <record id="4"/>
  <record id="5"/>
  <record id="6"/>
</data>

我想将此xml打印为

**TRIM("1"-"2"-"3"-"4"-"5"-"6")**

我正在使用简单的xsl,如下所示

<xsl:for-each select="descendant-or-self::*/record">
    <xsl:text>TRIM("</xsl:text>
    <xsl:value-of select="@id"/>
    <xsl:text>"-"</xsl:text>
    <xsl:text>)</xsl:text>
</xsl:for-each>

第一项只需要<xsl:text>TRIM("</xsl:text>,最后一项需要<xsl:text>)</xsl:text>。如何获得结果 TRIM(“1” - “2” - “3” - “4” - “5” - “6”)

1 个答案:

答案 0 :(得分:0)

我得到了答案。它是

<xsl:for-each select="descendant-or-self::*/record">
    <xsl:if test="position() = 1">
        <xsl:text>TRIM("</xsl:text>
    </xsl:if>
    <xsl:value-of select="@id"/>
    <xsl:text>"-"</xsl:text>
    <xsl:if test="position() = last()">
        <xsl:text>)</xsl:text>
    </xsl:if>
</xsl:for-each>