Subject: Re: [xsl] Incrementing a Global variable From: Rajendra S Rawat <rajsrawat@xxxxxxxxx> Date: Tue, 26 Aug 2003 21:59:40 -0700 (PDT) |
Hi! Mukul Perhaps nobody understood my problem XSL/XPath have failed to do a trivial thing!! Here are some more detail... This is an database(Oracle9i) generated complex xml, which is validated by some standard schemas.Which I am transforming to XSL:FO using XSLT to get a PDF output. It would be not possible to post 4000 lines complete xslt code. I've formulated sample files to illustrate the problem(now I've made it a pure XSL problem and not a FO problem, but FO Solution is also welcome ): ************************************************ Input XML file:(sample.xml) --------------------------- <?xml version="1.0" encoding="UTF-8"?> <Students> <Student> <Name>SAM</Name> <TOption>English </TOption> </Student> <Student> <Name>RAJ</Name> <TOption>English </TOption> </Student> <Student> <Name>RON</Name> <TOption>English </TOption> </Student> <Student> <Name>JON</Name> <TOption>German </TOption> </Student> <Student> <Name>DON</Name> <TOption>German </TOption> </Student> <Student> <Name>MON</Name> <TOption>Hebrew </TOption> </Student> <Student> <Name>GON</Name> <TOption>Hebrew </TOption> </Student> </Students> ********************************************** PDF/HTML Output:( I'm Getting) -------------------------- |1 |SAM |English | |--|-----------|---------| |2 |RAJ |English | |--|-----------|---------| |3 |RON |English | |--|-----------|---------| |4 | | | |--|-----------|---------| |4 |JON |German | |--|-----------|---------| |5 |DON |German | |--|-----------|---------| |6 | | | |--|-----------|---------| |6 |MON |Hebrew | |--|-----------|---------| |7 |GON |Hebrew | |--|-----------|---------| |10| Total = 7 | | |--|-----------|---------| |11| | | |--|-----------|---------| |12| | | |--|-----------|---------| |13| | | |--|-----------|---------| |14| | | |--|-----------|---------| |15| | | -------------------------- *********************************************** PDF/HTML Output:( I Require) -------------------------- |1 |SAM |English | |--|-----------|---------| |2 |RAJ |English | |--|-----------|---------| |3 |RON |English | |--|-----------|---------| |4 | | | |--|-----------|---------| |5 |JON |German | |--|-----------|---------| |6 |DON |German | |--|-----------|---------| |7 | | | |--|-----------|---------| |8 |MON |Hebrew | |--|-----------|---------| |9 |GON |Hebrew | |--|-----------|---------| |10| Total = 7 | | |--|-----------|---------| |11| | | |--|-----------|---------| |12| | | |--|-----------|---------| |13| | | |--|-----------|---------| |14| | | |--|-----------|---------| |15| | | --------------------------**************************************** XSLT File: (sample.xslt) ------------------------ <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:variable name="varRowLimit" select="15"/> <xsl:template match="Students"> <xsl:variable name="Student_Count" select="count(Student)"/> <xsl:variable name="BreakCount" select="count(Student[not(TOption = following-sibling::*/TOption)])"/> <html> <table > <xsl:for-each select="Student"> <tr> <td> <xsl:choose> <xsl:when test="position() mod $varRowLimit=0"> <xsl:value-of select="$varRowLimit "/> </xsl:when> <xsl:otherwise> <xsl:value-of select="(position() mod $varRowLimit)"/> </xsl:otherwise> </xsl:choose> </td> <td> <xsl:value-of select="Name"/> </td> <td> <xsl:value-of select="TOption"/> </td> </tr> <xsl:variable name="CurrTOption" select="TOption"/> <xsl:variable name="NextTOption" select="following-sibling::*/TOption"/> <xsl:if test="not(position()=last())"> <xsl:if test="not($NextTOption=$CurrTOption)"> <xsl:call-template name="PrintBlankRows"> <xsl:with-param name="start_count" select="position()+1"/> From owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx Wed Aug 27 01:52:05 2003 Received: (from majordom@localhost) by biglist.com (8.8.8/8.8.5/BL-2) id BAA22101; Wed, 27 Aug 2003 01:52:05 -0400 (EDT) From: Jarno.Elovirta@xxxxxxxxx X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Subject: RE: [xsl] Incrementing a Global variable Date: Wed, 27 Aug 2003 08:51:47 +0300 Message-ID: <E392EEA75EC5F54AB75229B693B1B6A705290442@xxxxxxxxxxxxxxxxxxxxxx> Thread-Topic: [xsl] Incrementing a Global variable Thread-Index: AcNsWNd+Ca7I3etyQOGEc2PoxT2I4AABeAMg To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> X-OriginalArrivalTime: 27 Aug 2003 05:51:47.0255 (UTC) FILETIME=[4D634470:01C36C5F] Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by biglist.com id BAA22085 Sender: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx Precedence: bulk Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx X-MailLoop: 1 Hi, > Also i have Isolated Problem Page from Actual output > which contains multiple pdf pages. This part is > conditionaly separated from other pdf pages ( which > are > further grouped using Muenchian Method) Could you integrage this approach to your stylesheets? <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:variable name="varRowLimit" select="15"/> <xsl:variable name="Student_Count" select="count(Students/Student)"/> <xsl:template match="Students"> <title></title> <table> <tbody> <xsl:apply-templates select="Student[1]"/> </tbody> </table> </xsl:template> <xsl:template match="Student" name="Student"> <xsl:param name="counter" select="1"/> <tr> <td> <xsl:value-of select="$counter"/> </td> <td> <xsl:value-of select="Name"/> </td> <td> <xsl:value-of select="TOption"/> </td> </tr> <xsl:variable name="next" select="following-sibling::Student[1]"/> <xsl:choose> <xsl:when test="not($next)"> <tr> <td> <xsl:value-of select="$counter + 1"/> </td> <td> <xsl:text/>Total = <xsl:value-of select="$Student_Count"/> </td> <td></td> </tr> <xsl:call-template name="empty"> <xsl:with-param name="counter" select="$counter + 2"/> <xsl:with-param name="left" select="$varRowLimit - $Student_Count - 3"/> </xsl:call-template> </xsl:when> <xsl:when test="TOption = $next/TOption"> <xsl:apply-templates select="$next"> <xsl:with-param name="counter" select="$counter + 1"/> </xsl:apply-templates> </xsl:when> <xsl:otherwise> <xsl:call-template name="empty"> <xsl:with-param name="counter" select="$counter + 1"/> </xsl:call-template> <xsl:apply-templates select="$next"> <xsl:with-param name="counter" select="$counter + 2"/> </xsl:apply-templates> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="empty"> <xsl:param name="counter" select="0"/> <xsl:param name="left" select="1"/> <xsl:if test="$left"> <tr> <td> <xsl:value-of select="$counter"/> </td> <td></td> <td></td> </tr> <xsl:call-template name="empty"> <xsl:with-param name="counter" select="$counter + 1"/> <xsl:with-param name="left" select="$left - 1"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> Cheers, Jarno - Feindflug: Größenwahn (Life Cried Remix) XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Incrementing a Global var, Mukul Gandhi | Thread | Re: [xsl] Incrementing a Global var, Américo Albuquerque |
[xsl] Re: xsl fails to select html , Dimitre Novatchev | Date | Re: [xsl] Re: xsl fails to select h, fe . sola |
Month |