xsl-list
[Top] [All Lists]

RE: Increment a variable

2005-08-18 06:19:45
Hello xsl-list,

        I can't figure out what is the problem in my code. Please can
any body help me.

Source:

        <?xml version="1.0" encoding="UTF-8"?>
        <Parameters>
                <parameter>
                        <name>Param1
                        </name>
                </parameter>
                <parameter>
                        <name>Param2
                        </name>
                </parameter>
                <parameter>
                        <name>Param3
                        </name>
                </parameter>
                <parameter>
                        <name>Param4
                        </name>
                </parameter>
                <parameter>
                        <name>Param5
                        </name>
                </parameter>
        </Parameters>

Xslt code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fo="http://www.w3.org/1999/XSL/Format";>
<xsl:output method="xml"></xsl:output>
        <xsl:template match="/">
                <xsl:apply-templates select="Parameters">
                </xsl:apply-templates>  
        </xsl:template>
        <xsl:template match="Parameters">
                <parameters>
                        <xsl:apply-templates select="parameter">
                                <xsl:with-param name="x" select="0"/>

                                <xsl:with-param name="y" select="0"/>
                                <xsl:with-param name="start"
select="0"/>
                                <xsl:with-param name="count"
select="count(parameter)"/>
                        </xsl:apply-templates>
                </parameters>
        </xsl:template>
        <xsl:template match="parameter">
                <xsl:param name="x" select="0"/>
                <xsl:param name="y" select="0"/>
                <xsl:param name="start" select="0"/>
                <xsl:param name="count" select="0"/>
                <parameter gridx="{$x}" gridy="{$y}">
                        <xsl:value-of select=".">
                        </xsl:value-of>
                </parameter>            
                <xsl:if test="$start &lt; $count">
                        <xsl:variable name="temp1" select="$x"/>
                        <xsl:variable name="temp2" select="$y+1"/>
                        <xsl:variable name="tempy" select="$temp2 mod
2"/>
                        <xsl:message> 
                                <xsl:value-of select="$tempy"/>
                        </xsl:message>
                        <xsl:choose>
                                <xsl:when test="$tempy=0">              
                                        <xsl:variable name="tempx"
select="$temp1+1"/>                     
                                                <xsl:apply-templates
select=".">
                                                        <xsl:with-param
name="x" select="$tempx"/>
                                                        <xsl:with-param
name="y" select="$tempy"/>
                                                        <xsl:with-param
name="start" select="$start+1"/>
                                                        <xsl:with-param
name="count" select="$count"/>
                                                </xsl:apply-templates>
                                </xsl:when>

                                <xsl:otherwise>
                                        <xsl:variable name="tempx"
select="$temp1"/>                       
                                                <xsl:apply-templates
select=".">
                                                        <xsl:with-param
name="x" select="$tempx"/>
                                                        <xsl:with-param
name="y" select="$tempy"/>
                                                        <xsl:with-param
name="start" select="$start+1"/>
                                                        <xsl:with-param
name="count" select="$count"/>
                                                </xsl:apply-templates>
                                </xsl:otherwise>
                        </xsl:choose>                   
                </xsl:if>
        </xsl:template>
</xsl:stylesheet>

Destination expected:

  <?xml version="1.0" encoding="UTF-16" ?> 
- <parameters xmlns:fo="http://www.w3.org/1999/XSL/Format";>
  <parameter gridx="0" gridy="0">Param1</parameter> 
  <parameter gridx="0" gridy="1">Param2</parameter> 
  <parameter gridx="1" gridy="0">Param3</parameter> 
  <parameter gridx="1" gridy="1">Param4</parameter> 
  <parameter gridx="2" gridy="0">Param5</parameter> 
  </parameters>

But the result is :

  <?xml version="1.0" encoding="UTF-16" ?> 
- <parameters xmlns:fo="http://www.w3.org/1999/XSL/Format";>
  <parameter gridx="0" gridy="0">Param1</parameter> 
  <parameter gridx="0" gridy="1">Param1</parameter> 
  <parameter gridx="1" gridy="0">Param1</parameter> 
  <parameter gridx="1" gridy="1">Param1</parameter> 
  <parameter gridx="2" gridy="0">Param1</parameter> 
  <parameter gridx="2" gridy="1">Param1</parameter> 
  <parameter gridx="0" gridy="0">Param2</parameter> 
  <parameter gridx="0" gridy="1">Param2</parameter> 
  <parameter gridx="1" gridy="0">Param2</parameter> 
  <parameter gridx="1" gridy="1">Param2</parameter> 
  <parameter gridx="2" gridy="0">Param2</parameter> 
  <parameter gridx="2" gridy="1">Param2</parameter> 
  <parameter gridx="0" gridy="0">Param3</parameter> 
  <parameter gridx="0" gridy="1">Param3</parameter> 
  <parameter gridx="1" gridy="0">Param3</parameter> 
  <parameter gridx="1" gridy="1">Param3</parameter> 
  <parameter gridx="2" gridy="0">Param3</parameter> 
  <parameter gridx="2" gridy="1">Param3</parameter> 
  <parameter gridx="0" gridy="0">Param4</parameter> 
  <parameter gridx="0" gridy="1">Param4</parameter> 
  <parameter gridx="1" gridy="0">Param4</parameter> 
  <parameter gridx="1" gridy="1">Param4</parameter> 
  <parameter gridx="2" gridy="0">Param4</parameter> 
  <parameter gridx="2" gridy="1">Param4</parameter> 
  <parameter gridx="0" gridy="0">Param5</parameter> 
  <parameter gridx="0" gridy="1">Param5</parameter> 
  <parameter gridx="1" gridy="0">Param5</parameter> 
  <parameter gridx="1" gridy="1">Param5</parameter> 
  <parameter gridx="2" gridy="0">Param5</parameter> 
  <parameter gridx="2" gridy="1">Param5</parameter> 
  </parameters>

Thanks in advance,
Chandu

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>