|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Increment a variable
Hi Chandu,
The following XSLT 2.0 stylesheet might be helpful (though it
does'nt generate numbers for gridx and gridy properly). I have tested
this with Saxon 8.4.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/Parameters">
<Parameters xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:for-each select="parameter">
<xsl:call-template name="generateElem">
<xsl:with-param name="node" select="." />
<xsl:with-param name="x" select="position()-1" />
</xsl:call-template>
</xsl:for-each>
</Parameters>
</xsl:template>
<xsl:template name="generateElem">
<xsl:param name="node" />
<xsl:param name="x" />
<xsl:element name="{name($node)}">
<xsl:attribute name="gridx" select="$x" />
<xsl:attribute name="gridy" select="$x + 1" />
<xsl:value-of select="$node" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Regards,
Mukul
On 8/18/05, ChandraShekar, A <ChandraShekar.A@xxxxxxxxxxx> wrote:
> 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 < $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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








