2011-01-27 4 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> 

Я хотел бы, чтобы петля на каждый файл, который позволяет с легкостью для-каждого, но я хочу, чтобы подсчитать его, и производить что-то вроде этого (XML):

<pic_1>L_03AB1B13144B416A8E779E0010D27156_iList.jpg</pic_1> 

<pic_2>L_36438628E6E343919D77A3D27877A650_iList.jpg</pic_2> 

и т.д ... (взглянуть на элементы, 1,2 ...) как мне это сделать?

ответ

7

это вообще плохая идея назвать одинаковые элементы по-разному. Вместо <pic_1>, <pic_2> do <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> 
Смежные вопросы