Doing some position dependent processing, and I needed to expand
the spanned cells to enable simpler xslt processing.
Not sure if it will help others, but its below.


The included file is simply the identity transform.
It's written as an xslt 2.0 file,
but doesn't have any dependencies, so should downgrade
easily.

HTH


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink";
xmlns:dc="http://purl.org/dc/elements/1.1/";
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:math="http://www.w3.org/1998/Math/MathML";
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:ooo="http://openoffice.org/2004/office";
xmlns:ooow="http://openoffice.org/2004/writer";
xmlns:oooc="http://openoffice.org/2004/calc";
xmlns:dom="http://www.w3.org/2001/xml-events";
xmlns:xforms="http://www.w3.org/2002/xforms";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
exclude-result-prefixes="xs xsi"
 version="2.0">

  <xsl:import href="/sgml/xsl/clean.xsl"/>


   <xsl:output method="xml" indent="yes" encoding="utf-8"/>
   <xsl:strip-space elements="*"/>







   <xsl:template match="table:[EMAIL PROTECTED]:number-columns-repeated]">
     <xsl:copy>
       <xsl:copy-of select="@*"/>
       <xsl:apply-templates/>
     </xsl:copy>
     <xsl:call-template name="cpycell">
       <xsl:with-param name="n" select="@table:number-columns-repeated"/>
       <xsl:with-param name="val" select="."/>
     </xsl:call-template>

   </xsl:template>





   <xsl:template name="cpycell">
     <xsl:param name="n" as="xs:integer"/>
     <xsl:param name="val" as="xs:string"/>
     <table:table-cell gen="t">
       <xsl:choose>
         <xsl:when test="$val = ''">
           <xsl:text>*</xsl:text>
         </xsl:when>
         <xsl:otherwise>
           <xsl:value-of select="$val"/>
         </xsl:otherwise>
       </xsl:choose>
     </table:table-cell>

     <xsl:if test="$n &gt; 2 ">
     <xsl:call-template name="cpycell">
       <xsl:with-param name="n" select="$n - 1"/>
       <xsl:with-param name="val" select="$val"/>
     </xsl:call-template>

     </xsl:if>
   </xsl:template>

</xsl:stylesheet>


--
Dave Pawson
XSLT XSL-FO FAQ.
http://www.dpawson.co.uk

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to