[sword-devel] XSLT for OpenOffice export to OSIS Genbook
Sebastien Koechlin
seb.sword at koocotte.org
Thu Feb 14 00:32:40 MST 2008
On Wed, Feb 13, 2008 at 01:36:22PM +0700, Daniel Owens wrote:
> <font face="Helvetica, Arial, sans-serif">I made some modifications to
> the XSLT to make provision for Scripture references and to simplify how
> images are handled. The attached zip archive contains the filter,
> instructions, and a few other useful files related to the filter. I
> will update the instructions on the wiki once it is
> up and running again. For now, though, here is version 1.0 of the
> filter. Enjoy!<br>
> <br>
> Daniel<br>
This look great.
I did not find oowriter2osis.xsl in your last zip file, so I read the file
you posted on Feb 8. You should avoid using 'disable-output-escaping' if
possible because:
- It makes you mix structure and content
- It can produce invalide XML
- The XML tree produced is not usable unless serialized
- You can open a tag in a template and close it in another
In <xsl:template name="header">, you have
<xsl:text disable-output-escaping="yes"><refSystem>Bible</refSystem></xsl:text>
, but
<refSystem>Bible</refSystem>
should do the same.
When looking for help about XSLT, I use
http://www.w3schools.com/xsl/xsl_w3celementref.asp and
http://www.w3schools.com/xpath/xpath_functions.asp is for XPath.
You should read the full XSLT tag list to see which exist.
For <xsl:template match="text:h">, you have
<xsl:variable name="sectvar">
<xsl:text>div</xsl:text>
</xsl:variable>
<xsl:variable name="idvar">
<xsl:text> type="x-</xsl:text>
<xsl:value-of select="@text:style-name"/>
<xsl:text>"</xsl:text>
</xsl:variable>
<xsl:text disable-output-escaping="yes"><</xsl:text>
<xsl:value-of select="$sectvar"/>
<xsl:value-of select="$idvar"/>
<xsl:text disable-output-escaping="yes">></xsl:text>
<xsl:apply-templates/>
<xsl:text disable-output-escaping="yes"></</xsl:text>
<xsl:value-of select="$sectvar"/>
<xsl:text disable-output-escaping="yes">></xsl:text>
But with <xsl:attribute> you can do the same (not tested):
<xsl:variable name="idvar" select="@text:style-name"/>
<div>
<xsl:attribute name="type">
<xsl:text><xsl:value-of select="concat('x-',$idvar)"/></xsl:text>
</xsl:attribute>
<xsl:apply-templates/>
</div>
--
Seb, autocuiseur
More information about the sword-devel
mailing list