сортировка и счетчики

Frutik

1024-й
сортировка и счетчики

есть такое преобразование

PHP:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table width="100%" cellpadding="4" cellspacing="0">
<tr><td height="37" class="movietitle" background="images/pixel_brown.gif">List</td></tr>
</table>
<table width="100%" cellspacing="1" cellpadding="9" border="0" align="center">
<tr class="maininfo">
    <td bgcolor="#cccccc"><b>#</b></td>
    <td width="50" bgcolor="#cccccc"><b>Title</b></td>
    <td width="50" bgcolor="#cccccc"><b>Country</b></td>
    <td width="50" bgcolor="#cccccc"><b>Year</b></td>
    <td width="50" bgcolor="#cccccc"><b>Added</b></td>
</tr>
<xsl:for-each select="AntMovieCatalog/Catalog/Contents/Movie">
    <xsl:sort select="@OriginalTitle"/>
    <tr class="maininfo">
	<xsl:choose>
	    <xsl:when test="position() mod 2 = 0">
		<xsl:attribute name="bgcolor">#dee3e7</xsl:attribute>
	    </xsl:when>
	    <xsl:otherwise>
		<xsl:attribute name="bgcolor">#efefef</xsl:attribute>
	    </xsl:otherwise>
	</xsl:choose>
	<td><xsl:number level="single"/></td>
	<td><a><xsl:attribute name="href">movie.php?id=<xsl:value-of select="@Number"/></xsl:attribute><xsl:value-of select="@OriginalTitle"/></a> / <a><xsl:attribute name="href">movie.php?id=<xsl:value-of select="@Number"/></xsl:attribute><xsl:value-of select="@TranslatedTitle"/></a></td>
	<td><xsl:value-of select="@Country"/></td>
	<td><xsl:value-of select="@Year"/></td>
	<td><xsl:value-of select="@Date"/></td>
    </tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
возник следующий вопрос: как при трансформации акуратно пронумеровать полученные строчки...
приведенные вариант (а так понимаю) работает следующим образом: сначала все трансформируется а потом сортируется и выводится... тоесть получается что порядковые номера после сортировки разбегаются согласно самой сортировке
 

Frutik

1024-й
сорри при посте код несущественно извратился в некоторых местах
 

Frutik

1024-й
раз никто не может ответить значит вопрос я задал плохо... ок

1. покосилась секция озервайс

2. приведенная трансформация выдает мне следующие результаты:

2. А
1. Б
10. В
.....
и так далее

как добиться от нее таких резуьтатов

1. А
2. Б
3. В
и так далее
 

[DAN]

Старожил PHPClub
Если тупо нумировать, заведи какую-нить переменную, и увеличивай ее на еденицу в каждом for-each.
 

slach

Новичок
КОНЕЧНУЮ ЗАДАЧУ все поняли...
не очень ясен код XSLT преобразования
1) меня смущает конструкция <xsl:number>
2) почему нельзя выводить <xsl:value="position()"> ???
3) можно сделать рекурсивный вызов темплейта с двумя параметрами ... один счестчик увеличивается на единицу... второй следующая (вычисляется через xpath ось) нода, в нодесете ...
 

Frutik

1024-й
преобразование такое корявое потому что только второй день этим занимаюсь...

спасибо за советы попробую вариант дана и попробую понять то что написал слач
 

Frutik

1024-й
все
<xsl:value-of select="position()">

позволяет добиться нужного результата
 

Frutik

1024-й
туплю блин... я ж этот позишн и так юзаю для выбора цвета бакграунда рова
 
Сверху