如何将当前迭代次数作为数组索引放在xsl中

时间:2013-12-02 12:17:48

标签: xml xslt foreach tags iteration

Xml我正在使用

"<default>"
    "<string>a</string>"
    "<string>Apple</string>"
    "<string>b</string>"
    "<string>Ball</string>"
    "<string>c</string>"
    "<string>Cat</string>"
    "<string>d</string>"
    "<string>Dog</string>"
"</default>"

and this is the xsl I am using

  <xsl:for-each select="//default/string">
        <xsl:element name="{/default/string[?]\">
             <xsl:value-of select="/default/string[?]\"/>
        </xsl:element>
  </xsl:for-each>

现在我希望我的xml采用这种格式

<default>
   <a>Apple</a>
   <b>Ball</b>
   <c>Cat</c>
   <d>Dog</d>
</default>

为此,我需要<xsl:element name="{/default/string[?]\">中的当前迭代编号,并在<xsl:value-of select="/default/string[?]\"/> 中增加值。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:5)

我认为您正在寻找position()功能,例如使用for-each的{​​{1}}内部会产生<xsl:value-of select="position()"/>123等。

4

我认为您最近的编辑不使用任何索引或位置,而是您想要

<xsl:for-each select="//default/string">
  <xsl:element name="{.}"><xsl:value-of select="position()"/></xsl:element>
</xsl:for-each>