XSL中利用xsl:for-each时给每一项添加序号

2005-10-09 10:35:42  作者
经常用for-each来循环读取XML中的某个节点集,但经常需要加上序号
这样来做
%26lt;xsl:template match="Book"%26gt;
%26lt;xsl:for-each select="Authors/Author"%26gt;
%26lt;xsl:number value="position()" /%26gt;
%26lt;xsl:value-of select="Name" /%26gt;
%26lt;/xsl:for-each%26gt;
%26lt;/xsl:template%26gt;
 
当然,假如你不满足,想在数字后面加上"."可以这样:
%26lt;xsl:number value="position()" format="1." /%26gt;
 
甚至,你可以用用图片表示1\2\3等:
%26lt;xsl:element name="img"%26gt;
%26lt;xsl:attribute name="src"%26gt;images/n%26lt;xsl:number value="position()" format="1" /%26gt;.gif%26lt;/xsl:attribute%26gt;
%26lt;xsl:attribute name="border"%26gt;0%26lt;/xsl:attribute%26gt;
%26lt;/xsl:element%26gt;
注重:你在images文件夹下腰有类似这样的文件n1.gif,n2.gif,n3.gif ... ...
 
 
假设我们XML如下:
%26lt;Book%26gt;
%26lt;ID%26gt;125353-8993-3737%26lt;/ID%26gt;
%26lt;ISBN%26gt;22222%26lt;/ISBN%26gt;
%26lt;Title%26gt;共产主义一定能胜利%26lt;/Title%26gt;
%26lt;Authors%26gt;
%26lt;Author%26gt;
%26lt;Name%26gt;%26lt;![CDATA[Bill%26amp;Hoele]]%26gt;%26lt;/Name%26gt;
%26lt;ID%26gt;12%26lt;/ID%26gt;
%26lt;/Author%26gt;
%26lt;Author%26gt;
%26lt;Name%26gt;%26lt;![CDATA[Eylor]]%26gt;%26lt;/Name%26gt;
%26lt;ID%26gt;1%26lt;/ID%26gt;
%26lt;/Author%26gt;
%26lt;/Authors%26gt;
%26lt;/Book%26gt;
相关文章