Subject: variable incrementing problems
From: Eugeny Kuzakov <kev@xxxxxxxxx>
Date: Mon, 28 Jun 1999 17:56:53 +0700 (OSS)
|
hi*
I am need correctly calculate rowspan attribute in result html-document.
I am have problems with it.
Question:
In debug2 comment value of FolderRowspan variable correctly
incrementes into need value.
But after exit from <xsl:if> tag it keep previous value.
What can I do?
Thanks.
--
Best wishes, Eugeny Kuzakov
Laboratory 321 ( Omsk, Russia )
kev@xxxxxxxxx
ICQ#: 5885106
<?xml version="1.0"?>
<document>
<folder name="name1">
<highligth>Some!</highligth>
<highligth>Some2!</highligth>
<desc>comment...</desc>
</folder>
<folder name="name2">
<desc>comment...</desc>
<subfolder name="name1">
<desc>Something in subfolder name1</desc>
<highligth>Some2!</highligth>
</subfolder>
<subfolder name="name2">
<desc>Something in subfolder name2</desc>
</subfolder>
<highligth>Some!</highligth>
</folder>
<folder name="name3">
<desc>comment...</desc>
<subfolder name="name1">
<desc>Something in subfolder name1</desc>
</subfolder>
<subfolder name="name2">
<desc>Something in subfolder name2</desc>
</subfolder>
<subfolder name="name3">
<desc>Something in subfolder name3</desc>
<highligth>Some2!</highligth>
</subfolder>
<highligth>Anything!</highligth>
</folder>
<folder name="name4">
<desc>comment...</desc>
</folder>
</document>
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
xmlns="http://www.w3.org/TR/REC-html40"
default-space="strip"
indent-result="yes"
result-ns="">
<xsl:template match="document">
<html>
<head>
<title>Title</title>
</head>
<body bgcolor="white">
<xsl:apply-templates select="folder"/>
</body>
</html>
</xsl:template>
<xsl:template match="folder">
<xsl:variable name="FolderRowspan"><xsl:value-of select="count(subfolder)*2+1"/></xsl:variable>
<xsl:comment>debug1: Before if:<xsl:value-of select="$FolderRowspan"/></xsl:comment>
<xsl:if test="count(highligth)+count(subfolder/highligth) > 0">
<xsl:variable name="FolderRowspan"><xsl:value-of select="$FolderRowspan+1"/></xsl:variable>
<xsl:comment>Debug2: in if after increase:<xsl:value-of select="$FolderRowspan"/></xsl:comment>
</xsl:if>
<xsl:comment>Debug3: after if:<xsl:value-of select="$FolderRowspan"/></xsl:comment>
<table border="1">
<xsl:if test="$FolderRowspan > 1">
<tr>
<td>
<xsl:attribute name="rowspan">
<xsl:value-of select="$FolderRowspan"/>
</xsl:attribute>
<xsl:comment>I will glad to insert here nbsp entity</xsl:comment>
<font color="white">_</font>
</td>
<td>
<b>Folder</b>:<xsl:value-of select="desc"/>
</td>
</tr>
</xsl:if>
<xsl:if test="number($FolderRowspan) = 1">
<tr>
<td>
<xsl:comment>I will glad to insert here nbsp entity</xsl:comment>
<font color="white">_</font>
</td>
<td>
<b>Folder</b>:<xsl:value-of select="desc"/>
</td>
</tr>
</xsl:if>
<xsl:for-each select="./subfolder">
<tr>
<td>
<b>Subfolder</b>: <xsl:value-of select="@name"/>
</td>
</tr>
<tr>
<td>
<xsl:value-of select="desc"/>
</td>
</tr>
</xsl:for-each>
<xsl:if test="count(highligth) > 1">
<tr>
<td>
<b><xsl:for-each select="highligth">
<xsl:value-of select="."/>;
</xsl:for-each>
<xsl:for-each select="subfolder/highligth">
<xsl:value-of select="."/>;
</xsl:for-each></b>
</td>
</tr>
</xsl:if>
</table>
<br />
</xsl:template>
</xsl:stylesheet>
|