Subject: RE: [xsl] What is a good way to style and show tabular data [snip] From: Peter Flynn <peter@xxxxxxxxxxx> Date: 19 Aug 2003 22:30:03 +0100 |
On Tue, 2003-08-19 at 20:39, SANWAL, ABHISHEK (HP-Houston) wrote: > To: XSL-List > Cc: Wendell > Cc: Peter > > I am wondering if you could give me some suggestions on the actual XML > at hand. In this matrix/table design I am only thinking for 2-D Data & > Layout. Of course that is the medium I can write to now and that is the > content. In the solution below, I have used the principle of sticking to templates where possible and using for-each only where absolutely necessary. > I am trying to eliminate the notion of absolute vertical or horizontal > flow styling for the table thereby allowing me to lay the table out with > the head on the top or the head on the left ( maybe even the right ?? ). > > I am inserting sample XML and a partially done XSL where I would like > some suggestions on how I could improve the XML and the XSL to make them > do the "Vertical" flow that I have not yet completed. A couple of queries first: > (V - Vertical, H - Horizontal) > > <Matrix HeadFlow="V|H" HeadExists="1" HeadCount="4" DataCount="1"> V|H I can understand ("this table may be presented vertically or horizontally"). HeadExists I'm not certain about: XSL can test if MatrixHeadArray is present as child::*[1] of Matrix, so it seems unnecessary. The same applies to HeadCount: count(MatrixHeadArray/MatrixHeadCell) will give you the same value. Ditto for DataCount (count(MatrixDataArray)). > <MatrixHeadArray> > <MatrixHeadCell i="1">Standard 1</MatrixHeadCell> > <MatrixHeadCell i="2">Maximum 2</MatrixHeadCell> > <MatrixHeadCell i="3">Standard 3</MatrixHeadCell> > <MatrixHeadCell i="4">Maximum 4</MatrixHeadCell> > </MatrixHeadArray> Does @i exist solely to link the column/row positions between header and data? Or is there a possibility that the MatrixHeadCell elements will be out of order (and therefore need sorting)? > <MatrixDataArray j="1"> > <MatrixDataCell i="1" j="1">1024 MB </MatrixDataCell> > <MatrixDataCell i="2" j="1">32GB</MatrixDataCell> > <MatrixDataCell i="3" j="1">512 MB </MatrixDataCell> > <MatrixDataCell i="4" j="1">32GB</MatrixDataCell> > </MatrixDataArray> Same question about @i. What is @j for? > </Matrix> ///Peter ---------------------------------8<-------------------------------------- <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="iso-8859-1"/> <xsl:strip-space elements="*"/> <xsl:template match="/"> <html> <head> <title> <xsl:text>Horizontal and Vertical Tables</xsl:text> </title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="Matrix"> <xsl:if test="contains(@HeadFlow,'H')"> <h3>Horizontal</h3> <table border="1"> <xsl:apply-templates mode="H"/> </table> </xsl:if> <xsl:if test="contains(@HeadFlow,'V')"> <h3>Vertical</h3> <table border="1"> <xsl:apply-templates mode="V"/> </table> </xsl:if> </xsl:template> <xsl:template match="MatrixHeadArray" mode="H"> <tr> <xsl:apply-templates mode="H"/> </tr> </xsl:template> <xsl:template match="MatrixHeadCell" mode="H"> <th> <xsl:apply-templates/> </th> </xsl:template> <xsl:template match="MatrixDataArray" mode="H"> <tr> <xsl:apply-templates mode="H"/> </tr> </xsl:template> <xsl:template match="MatrixDataCell" mode="H"> <td> <xsl:apply-templates/> </td> </xsl:template> <xsl:template match="MatrixHeadArray" mode="V"> <xsl:for-each select="MatrixHeadCell"> <tr> <th> <xsl:apply-templates/> </th> <xsl:variable name="headloc"> <xsl:value-of select="@i"/> </xsl:variable> <xsl:for-each select="../../MatrixDataArray"> <td> <xsl:apply-templates select="MatrixDataCell[@i=$headloc]"/> </td> </xsl:for-each> </tr> </xsl:for-each> </xsl:template> <xsl:template match="MatrixDataCell" mode="V"/> </xsl:stylesheet> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] What is a good way to sty, SANWAL, ABHISHEK (HP | Thread | Re: [xsl] Restraining specific word, Joseph Tan |
[xsl] newbie question about strings, fe . sola | Date | [xsl] catching URL variable in XSL, Bruce Rojas-Rennke |
Month |