Проблема с переменными в XSL

MoonCat

Старожил PHPCluba
Проблема с переменными в XSL

как то так написал схему обработки XML в XSL, что приходиться использовать переменные.

сначала все работало через Xalan .... уже что то наработали.
Теперь возникла идея все это делать сразу в PHP.

уже работающие XSL выдают ошибки вида :

Error number: 53 Error string: conflicting variable bindings 'Var111'

опытным путем нашел, что это случается при повторном
присвоениее значения переменным :mad:
что же это за "переменные" если их по ходу нельзя изменить ?:confused:

приваиваю так:

PHP:
  <xsl:variable name="Var111" select="1234567"></xsl:variable>



  ....

   <xsl:variable name="Var111" select="0987"></xsl:variable>
 

slach

Новичок
ну а спецификацию XSLT v1.0 почитать пробовали ?
то что Xalan умерет делать редекларацию variable это скорее минус чем плюс
 

jian

Guest
ne izmenyat a po novomu prisvaivat.
nujno prokruchivat:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:eek:utput method="html" version="4.01" encoding="UTF-8"/>

<xsl:template match="/">
<xsl:call-template name="krutilka"/>
</xsl:template>

<xsl:template name="krutilka">
<xsl:param name="counter" select="1"/>
<xsl:param name="Var111" select="1234567"/>

<xsl:if test="2 >= $counter">
<xsl:value-of select="$counter"/>:Var111=<xsl:value-of select="$Var111"/>.
<xsl:call-template name="krutilka">
<xsl:with-param name="counter" select="$counter +1"/>
<xsl:with-param name="Var111" select="0987"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

dayot :
1:Var111=1234567.
2:Var111=987.

cheers
 
Сверху