Subject: RE: [xsl] Converting from Excel 2003 to a table XSLT 1.0 (saxon 6.5) From: "Kaila Kaarle" <Kaarle.Kaila@xxxxxxx> Date: Wed, 27 Jul 2005 13:43:56 +0300 |
I succeeded in the transformation from Excel 2003 to simple table elements. Thanks a lot for you help. If I use Saxon 6.5 I must use namespaces in the xslt but when I use the xerces 2.? library the namespaces must be removed from the xslt i.e. I have one xslt file with namespaces definitions for saxon6.5 and same without namespace definitions for the xerces library. I assume one of them does not function right. Which one is right or am I missing something? regards Kaarle -----Original Message----- From: Michael Kay [mailto:mike@xxxxxxxxxxxx] Sent: 26. heindkuuta 2005 12:29 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] Converting from Excel 2003 to a table XSLT 1.0 (saxon 6.5) I suspect the test you want to apply is not ss:Index > position(), but ss:Index > the implicit index of the previous cell, where the implicit index is the ss:Index value if there is one, or the implicit index of the previous cell + 1 if not. Or to put it another way, the column position if there is no ss:Index is equal to the most recent ss:Index value plus the number of intervening Cells with no ss:Index plus one. One way to tackle this would be to first expand the tree by adding the implicit ss:Index values for cells where they are missing. There's a good use for functions here, as defined in XSLT 2.0 - especially memo-functions as implemented in Saxon. You can define the index() of a cell as being its @ss:Index value if it has one, or the index() of the preceding-sibling::Cell[1] +1 if not, or 1 if it's the first cell. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Kaila Kaarle [mailto:Kaarle.Kaila@xxxxxxx] > Sent: 26 July 2005 09:43 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Converting from Excel 2003 to a table XSLT 1.0 > (saxon 6.5) > > hello, > > I am converting an Excel 2003 Table element to an html table element. > > Conversion goes OK if all elements have content or even if > one set of elements are empty but if more than one set of > elements are empty then I get it wrong. Can anybody give me > good advice on this: > > This is how teh Table Row looks like in Excel. First Cell > element begins at column 3 and the 4th Cell element begins at > column 7. > ---------------------------- > <Row> > <Cell ss:Index="3" ss:StyleID="s25"> > <Data ss:Type="String">L1</Data> > </Cell> > <Cell> > <Data ss:Type="String">Eland</Data> > </Cell> > <Cell> > <Data ss:Type="String">se</Data> > </Cell> > <Cell ss:Index="7"> > <Data ss:Type="String">Ahvenanmaa</Data> > </Cell> > </Row> > ------------------------------ > > This is what I have made sofar: It adds correct amount of > empty cells for 1st Cell but I have not figured out how to > calculate on what <td> element I am the next time. > > > <xsl:template match="ss:Cell"> > <xsl:if test="@ss:Index > position()"> > <xsl:call-template name="produce-empty-cells"> > <xsl:with-param name="count" select="@ss:Index - position()"/> > </xsl:call-template> > </xsl:if> > <td> > <xsl:value-of select="ss:Data"/> > </td> > </xsl:template> > > <xsl:template name="produce-empty-cells"> > <xsl:param name="count"/> > <xsl:if test="$count != 0"> > <td></td> > <xsl:call-template name="produce-empty-cells"> > <xsl:with-param name="count" select="$count - 1"/> > </xsl:call-template> > </xsl:if> > </xsl:template> > > ----------------- > > regards > Kaarle Kaila
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Converting from Excel 200, Michael Kay | Thread | [xsl] skeleton1-5.xsl for XSLT 2.0, Jesper Tverskov |
Re: [xsl] Having cell padding in a , Mukul Gandhi | Date | [xsl] Nodeset problems, Ragulf Pickaxe |
Month |