Subject: Re: XHTML to CALS table From: uche.ogbuji@xxxxxxxxxxxxxxx Date: Tue, 21 Nov 2000 23:10:12 -0700 |
Ben Skelton <Ben_Skelton@xxxxxxxxxxxxx>: > >I was wondering if anyone has a stylesheet or has had any experience converting > >HTML (or XHTML) tables to CALS tables using XSLT. The biggest problems I see in > >doing this is that colspan and rowspans are treated differently. Any help would > >be much appreciated! I almost hesitate to post this, because it might just be useless to you, but I see you haven't had much response so maybe anything is better than nothing. Docbook basically uses the CALS model, and so you might be able to extrapolate from my docbook -> HTML transform which only handles the rowspec/colspec to colspan portion. I think that one of these days I'll finish it off, but first of all I'll want to clean up the code. Anyway, here is the relevant snippet: <xsl:template match='doc:table'> <TABLE> <xsl:if test="@frame='none'"> <xsl:attribute name='border'>0</xsl:attribute> </xsl:if> <xsl:apply-templates/> </TABLE> </xsl:template> <xsl:template match='doc:row'> <TR> <xsl:apply-templates/> </TR> </xsl:template> <xsl:template match='doc:entry'> <xsl:choose> <xsl:when test='@spanname'> <xsl:variable name="spanspec" select="ancestor::doc:table[1]/doc:spansp ec[@spanname=current()/@spanname]"/> <!-- FIXME: This logic will break if a colspec has a colnum attr out of sequence --> <xsl:variable name="colspecs" select="ancestor::doc:table[1]/doc:colspe c"/> <xsl:variable name="start" select="count($colspecs[@colname=$spanspec/@ namest]/preceding-sibling::doc:colspec)+1"/> <xsl:variable name="end" select="count($colspecs[@colname=$spanspec/@na meend]/preceding-sibling::doc:colspec)+1"/> <xsl:variable name="colspan" select="$end - $start"/> </xsl:when> <xsl:otherwise> <xsl:variable name="colspan"/> </xsl:otherwise> </xsl:choose> <TD> <xsl:if test="$colspan"> <xsl:attribute name='COLSPAN'><xsl:value-of select="$colspan"/> </xsl:attribute> </xsl:if> <xsl:apply-templates/> </TD> </xsl:template> I've done no work to optimize this whatsoever. If you do come up with something useful, I'd love to see it. Meanwhile, it's possible that you'll find a better answer in Norm Walsh's far more comprehensive docbook -> html stylesheet (see http://docbook.org) Good luck. -- Uche Ogbuji Principal Consultant uche.ogbuji@xxxxxxxxxxxxxxx +1 303 583 9900 x 101 Fourthought, Inc. http://Fourthought.com 4735 East Walnut St, Ste. C, Boulder, CO 80301-2537, USA Software-engineering, knowledge-management, XML, CORBA, Linux, Python XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: XHTML to CALS table, Richard Light | Thread | Re: XHTML to CALS table, Christopher R. Maden |
Naming an attribute as the atribute, Rosa I-Ting Cheng | Date | Re: Naming an attribute as the atri, Mike Brown |
Month |