- From: anandhthiyagarajan <anandhthiyagarajan@gmail.com>
- Date: Wed, 3 Feb 2010 08:43:26 -0800 (PST)
- To: www-xsl-fo@w3.org
Thanks a lot aish. It served exactly my purpose. Can you also suggest me is it possible to wrap the table in xsl:fo. Thanks again Anandh Aish wrote: > > Hi Anandh, > > I did it using FOP 0.95. In your xsl code, number of <fo:table-column > column-width="1in"/> doesn't match(less than) the columns given under > for-each of quarters and hence the problem. You need to check empty > quarters. Also, attribute "increment-by" is removed as it doesn't support. > The code will be as below. > > <xsl:template match="root/roadmap"> > <fo:block space-before='2mm'> > <fo:block font-size="10pt" color="black" font-weight="bold" > space-before="0.54in" space-after="2pt" > > ROADMAP INFORMATION > </fo:block> > <fo:block space-before='2mm'> > </fo:block> > <fo:table border-collapse="collapse" font-size="9pt"> > <fo:table-column column-width="1in"/> > <fo:table-column column-width="1in"/> > <fo:table-column column-width="1in"/> > <fo:table-column column-width="1in"/> > <fo:table-column column-width="1in"/> > <fo:table-header color="black" background-color="rgb(39,64,139)" > font-weight="bold"> > <fo:table-row> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>YEAR</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q1</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q2</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q3</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q4</fo:block> > </fo:table-cell> > </fo:table-row> > </fo:table-header> > <fo:table-body> > <xsl:for-each select="years"> > <fo:table-row> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:value-of select="year"/></fo:block> > </fo:table-cell> > <xsl:variable name="MyQuarter"><xsl:value-of > select="quarters[1]/quarter"/></xsl:variable> > <xsl:choose> > <xsl:when test="$MyQuarter='Q1'"> > > </xsl:when> > <xsl:when test="$MyQuarter='Q2'"> > <fo:table-cell padding="2pt" border="1pt solid > black"><fo:block/></fo:table-cell> > </xsl:when> > <xsl:when test="$MyQuarter='Q3'"> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > </xsl:when> > <xsl:when test="$MyQuarter='Q4'"> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > </xsl:when> > <xsl:when test="$MyQuarter='Q5'"> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid > black" text-align="center"><fo:block/></fo:table-cell> > </xsl:when> > </xsl:choose> > <xsl:for-each select="quarters"> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:apply-templates > select="requirements"/></fo:block> > </fo:table-cell> > </xsl:for-each> > </fo:table-row> > </xsl:for-each> > </fo:table-body> > </fo:table> > </fo:block> > </xsl:template> > > <xsl:template match="requirements"> > <xsl:apply-templates/> > </xsl:template> > > <xsl:template match="requirement"> > <xsl:apply-templates/> > </xsl:template> > > This code will produce your desired output with FOP 0.95. Hope this > helps:-) > > Regards > Aish > > > anandhthiyagarajan wrote: >> >> Hi everybody >> >> I am stuck up with an issue in manipulating the table. >> >> >> >> Consider the below XML and XSL >> >> <root> >> <roadmap> >> <years> >> <year>2009</year> >> <quarters> >> <quarter>Q3</quarter> >> <requirements> >> <requirement>Mp3Player</requirement> >> </requirements> >> <requirements> >> <requirement>Mp3Player</requirement> >> </requirements> >> <requirements> >> <requirement>DataCable</requirement> >> </requirements> >> <requirements> >> <requirement>Mp3Player</requirement> >> </requirements> >> <requirements> >> <requirement>Mp3Player</requirement> >> </requirements> >> <requirements> >> <requirement>Bluetooth</requirement> >> </requirements> >> </quarters> >> <quarters> >> <quarter>Q4</quarter> >> <requirements> >> <requirement>DataCable</requirement> >> </requirements> >> <requirements> >> <requirement>MemoryCard</requirement> >> </requirements> >> <requirements> >> <requirement>InbuiltCam</requirement> >> </requirements> >> </quarters> >> </years> >> </roadmap> >> </root> >> >> >> XSL: >> >> <xsl:template match="root/roadmap"> >> <fo:block space-before='2mm'> >> <fo:block font-size="10pt" color="black" font-weight="bold" >> increment-by="1.1.1" space-before="0.54in" space-after="2pt" > >> ROADMAP INFORMATION >> </fo:block> >> <fo:block space-before='2mm'> >> </fo:block> >> <fo:table border-collapse="collapse" font-size="9pt"> >> <fo:table-column column-width="1in"/> >> <fo:table-column column-width="50%"/> >> <fo:table-column column-width="50%"/> >> <fo:table-column column-width="50%"/> >> <fo:table-column column-width="50%"/> >> <fo:table-header color="black" background-color="rgb(39,64,139)" >> font-weight="bold"> >> <fo:table-row> >> <fo:table-cell padding="2pt" border="1pt solid black" >> text-align="center"> >> <fo:block>YEAR</fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> text-align="center"> >> <fo:block>Q1</fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> text-align="center"> >> <fo:block>Q2</fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> text-align="center"> >> <fo:block>Q3</fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> text-align="center"> >> <fo:block>Q4</fo:block> >> </fo:table-cell> >> </fo:table-row> >> </fo:table-header> >> <fo:table-body> >> <xsl:for-each select="years"> >> <fo:table-row> >> <fo:table-cell padding="2pt" border="1pt solid black" >> background-color="rgb(255,255,255)" text-align="center"> >> <fo:block><xsl:value-of select="year"/></fo:block> >> </fo:table-cell> >> <xsl:for-each select="quarters"> >> <fo:table-cell padding="2pt" border="1pt solid black" >> background-color="rgb(255,255,255)" text-align="center"> >> <fo:block><xsl:value-of select="."/></fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> background-color="rgb(255,255,255)" text-align="center"> >> <fo:block><xsl:value-of >> select="requirement"/></fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> background-color="rgb(255,255,255)" text-align="center"> >> <fo:block><xsl:value-of >> select="requirement"/></fo:block> >> </fo:table-cell> >> <fo:table-cell padding="2pt" border="1pt solid black" >> background-color="rgb(255,255,255)" text-align="center"> >> <fo:block><xsl:value-of >> select="requirement"/></fo:block> >> </fo:table-cell> >> </xsl:for-each> >> </fo:table-row> >> </xsl:for-each> >> </fo:table-body> >> </fo:table> >> </fo:block> >> </xsl:template> >> >> >> I am attaching a file with this which contain the required ouptut. >> >> http://old.nabble.com/file/p27430837/Table.doc Table.doc >> >> >> >> But i am not getting that output instead it throws a exception. Please >> let me know if i am missing something. >> >> The stack trace is as follows >> >> java.lang.ArrayIndexOutOfBoundsException: -2 >> >> Cocoon stacktrace: >> >> java.lang.ArrayIndexOutOfBoundsException: -2 >> context://prd-doc/doc2road.xsl - 7:18 >> >> Failed to process pipeline >> context://prd-doc/doc2road.xsl - 7:18 [TransformerException] >> context://prd-doc/sitemap.xmap - 63:46 <map:serialize type="fo2pdf"> >> context://prd-doc/sitemap.xmap - 62:51 <map:transform> >> context://prd-doc/sitemap.xmap - 61:45 <map:generate> >> context://sitemap.xmap - 1034:92 <map:mount> >> >> Any help would be greatly appreciated. >> >> >> >> Thanks in Advance >> >> Anandh >> > > -- View this message in context: http://old.nabble.com/Table-Manipulation-tp27430837p27439464.html Sent from the w3.org - www-xsl-fo mailing list archive at Nabble.com.
Received on Wednesday, 3 February 2010 16:43:56 UTC