George,
1. Everywhere you've coded following-sibling::Cell[7] - you need
to replace that with ../Cell[7] .
2. The Excel format has a default namespace of
urn:schemas-microsoft-com:office:spreadsheet set on the root element
(Worksheet). You need to be using that in your XPath expressions too.
In the following example, I've mapped that namespace to "ss" :
<xsl:template match="ss:Row">
<row>
<xsl:apply-templates />
</row>
</xsl:template>
<xsl:template match="ss:Cell[position() > 1 and position() < 7]">
<entry>
<xsl:value-of select="ss:Data" />
<xsl:if test="position()=3 and ../ss:Cell[7]">
<xsl:message>+++ making footnote
+++</xsl:message>
<footnote>
<para>
<xsl:value-of
select="../ss:Cell[7]/ss:Data" />
</para>
</footnote>
</xsl:if>
</entry>
</xsl:template>
Regards,
Kenneth
On 8/12/05, Georges Schmitz <georges(_dot_)schmitz(_at_)heitec(_dot_)de> wrote:
My use case:
I have an Excel Sheet in xml format, that is basically build out of 6
columns. Now and then I have a value in column 7, that should be made a
footnote in column 2 of the output. Column 1 is to be eliminated in the
output (I just use it for grouping).
Example Data (6 columns, sometimes 7):
<Row>
<Cell><Data ss:Type="String">LAS</Data></Cell>
<Cell><Data ss:Type="String">Masterreport</Data></Cell>
<Cell><Data ss:Type="String">alle 4 Lizenzarten</Data></Cell>
<Cell><Data ss:Type="String">Lizenzdruck</Data></Cell>
<Cell><Data ss:Type="String">Jasper</Data></Cell>
<Cell><Data ss:Type="String">pilot_licence_CH.xml</Data></Cell>
<Cell><Data ss:Type="String">Alle Lizenzvorlagen sind in zip-Dateien
zusammengefasst.</Data></Cell>
</Row>
Output should be (5 columns):
<row>
<entry>Masterreport</entry>
<entry>alle 4 Lizenzarten<footnote>
<para>Alle Lizenzvorlagen sind in zip-Dateien
zusammengefasst.</para>
</footnote>
</entry>
<entry>Lizenzdruck</entry>
<entry>Jasper</entry>
<entry>pilot_licence_CH.xml</entry>
</row>
My approach is to use simple template matching for rows and cells:
<xsl:template match="Row">
<row>
<xsl:apply-templates/>
</row>
</xsl:template>
<xsl:template match="Cell[position() > 1 and position() < 7]">
<entry>
<xsl:value-of select="Data"/>
<xsl:if test="position()=3 and following-sibling::Cell[7]">
<xsl:message>+++ making footnote +++</xsl:message>
<footnote><para><xsl:value-of
select="following-sibling::Cell[7]/Data"/></para></footnote>
</xsl:if>
</entry>
</xsl:template>
--~------------------------------------------------------------------
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>
--~--