2011-01-27 29 views
0

我有一個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 ......) 我該怎麼辦呢?

回答

7

它通常是一個壞主意,以不同的方式命名相等的元素。而不是<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> 
6

使用「XSL:元素」標籤:

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