Hi All, help me please find more elegant way to solve next sitiaion
I have xsl that work but it very 'awful'
I need table with the next columns
------------------------------------
| @flag = 1 | @flag=2 |
|code|sname|sum|date|code|sname|sum|
I have next xml
<root>
<list flag="2">
<month>5</month>
<days>24.00</days>
<sname>asdg</sname>
<code-pMT>1</code-pMT>
<sum-amt>2190.99</sum-amt>
</list>
<list flag="2">
<month>4</month>
<days>10.00</days>
<sname>asfgasf</sname>
<code-pMT>16</code-pMT>
<sum-amt>193.00</sum-amt>
</list>
<list flag="1">
<month>4</month>
<days>0.00</days>
<sname>asfg</sname>
<code-pMT>200</code-pMT>
<sum-amt>500.00</sum-amt>
</list>
<list flag="1">
<month>4</month>
<days>0.00</days>
<sname>asfgas</sname>
<code-pMT>202</code-pMT>
<sum-amt>138.72</sum-amt>
</list>
<list flag="1">
<month>3</month>
<days>0.00</days>
<sname>asdfga</sname>
<code-pMT>202</code-pMT>
<sum-amt>11811.73</sum-amt>
</list>
</root>
my xsl work by in my sigth is very ugly
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xslt"
>
<xsl:strip-space elements="*"/>
<xsl:output method="html" encoding="Windows-1251" xalan:indent-amount="5"/>
<xsl:template match="/root">
<html>
<head></head>
<body>
<big>title</big>
<table>
<tr>
<th>codePMT</th>
<th>sName</th>
<th>summa</th>
<th>date</th>
<th>codePMT</th>
<th>sName</th>
<th>summa</th>
</tr>
<xsl:variable name="flag1"
select="list-charg-stop-fact-code-print-form[(_at_)flag=2]"/>
<xsl:variable name="flag2"
select="list-charg-stop-fact-code-print-form[(_at_)flag=1]"/>
<xsl:variable name="loopflag">
<xsl:choose>
<xsl:when test="count($flag1) > count($flag2)">
<xsl:value-of select="2"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="loop"
select="list-charg-stop-fact-code-print-form[(_at_)flag=$loopflag]"/>
<xsl:for-each select="$loop">
<xsl:variable name="i" select="position()"/>
<tr>
<th><xsl:value-of select="$flag1[position()=$i]/code-pMT"/></th>
<th><xsl:value-of select="$flag1[position()=$i]/sname"/></th>
<th><xsl:value-of select="$flag1[position()=$i]/sum-amt"/></th>
<th><xsl:value-of select="$flag1[position()=$i]/days"/></th>
<th><xsl:value-of select="$flag2[position()=$i]/code-pMT"/></th>
<th><xsl:value-of select="$flag2[position()=$i]/sname"/></th>
<th><xsl:value-of select="$flag2[position()=$i]/sum-amt"/></th>
</tr>
</xsl:for-each>
<tr valign="bottom">
<th></th>
<th></th>
<th><xsl:value-of
select="format-number(sum($flag1/sum-amt),'.00')"/></th>
<th><xsl:value-of select="sum($flag1/days)"/></th>
<th></th>
<th></th>
<th><xsl:value-of
select="format-number(sum($flag2/sum-amt),'.00')"/></th>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
--
Best regards,
Andrey mailto:solo(_at_)ibis(_dot_)odessa(_dot_)ua
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list