带计数器的XSL循环?

问题描述:

我有一个XML,它有很多的元素,一些看起来像这样:带计数器的XSL循环?

<Images> 
− 
<Image> 
<FileName>L_03AB1B13144B416A8E779E0010D27156_iList.jpg</FileName> 
<SequenceNumber>8</SequenceNumber> 
<IsDefault>False</IsDefault> 
</Image> 
− 
<Image> 
<FileName>L_36438628E6E343919D77A3D27877A650_iList.jpg</FileName> 
<SequenceNumber>9</SequenceNumber> 
<IsDefault>False</IsDefault> 
</Image> 
− 
<Image> 
<FileName>L_3E0BFE975FA04A46848C3B3D983C4DE7_iList.jpg</FileName> 
<SequenceNumber>10</SequenceNumber> 
<IsDefault>False</IsDefault> 
</Image> 
− 
<Image> 
<FileName>L_DAD3FA64670E40F5BD0B48343216BF76_iList.jpg</FileName> 
<SequenceNumber>11</SequenceNumber> 
<IsDefault>False</IsDefault> 
</Image> 
− 
<Image> 
<FileName>L_2522D5E120574582A926032E1DF4733F_iList.jpg</FileName> 
<SequenceNumber>12</SequenceNumber> 
<IsDefault>False</IsDefault> 
</Image> 
</Images> 

我想对每一个文件名,这是很容易与for-each循环,但我想指望它,产生类似的东西(XML):

<pic_1>L_03AB1B13144B416A8E779E0010D27156_iList.jpg</pic_1> 

<pic_2>L_36438628E6E343919D77A3D27877A650_iList.jpg</pic_2> 

等..(看看的元素,1,2 ......) 我该怎么办呢?

它通常是一个坏主意,以不同的方式命名相等的元素。而不是<pic_1>, <pic_2><pic num="1">, <pic num="2">

稍后使用XML文档时,这使得您的生活很多更容易。 XPath查询,XSLT转换,DOM操作 - 任何事情都会更简单和更一致。

<xsl:template match="Image"> 
    <pic num="{position()}"> 
    <xsl:value-of select="FileName" /> 
    </pic> 
</xsl:template> 

使用“XSL:元素”标签:

<xsl:element name="pic_{position()}"> 
    <xsl:value-of select="FileName" /> 
</xsl:element>