xsl-list
[Top] [All Lists]

RE: Converting from Excel 2003 to a table XSLT 1.0 (saxon 6.5)

2005-07-27 03:43:56
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(_at_)saxonica(_dot_)com]
Sent: 26. heinäkuuta 2005 12:29
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_dot_)Kaila(_at_)nice(_dot_)fi] 
Sent: 26 July 2005 09:43
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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">Åland</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 &gt; 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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>