forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ferdinand Soethe <ferdin...@apache.org>
Subject Re: ODT: adding
Date Tue, 25 Apr 2006 06:39:13 GMT
Not sure if this helps (and don't have time to look it up) but I
remember having accessed that information when I created the OOo-to
HowTo-Transformer. Might help to take a look how it is done.

Regards,
Ferdinand Soethe

Web Maestro Clay wrote:

> ODT uses a similar structure to OOo. I want to grab the document  
> title element (stored in 'odt_file.odt/meta.xml' as /office:document- 
> meta/office:meta/dc:title). But the ODT transformer currently only  
> looks at /content.xml.

> Here's what I've got so far:

> <xsl:stylesheet ..>
> <!-- FIXME Grab the file name -->
> <xsl:variable name="filename">Insert Client Name</xsl:variable>

> <xsl:output
>         method="xml"
>         indent="yes"
>         omit-xml-declaration="yes"
>         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
>         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1- 
> transitional.dtd"
>         encoding="UTF-8"
/>>

> <..>

> <!--
>         Following hanged to match="/" from match="/office:document- 
> content"
>         with optimistic hope I could grab the dc:title element from / 
> meta.xml
-->>
> <xsl:template match="/">
> <!-- At this point, we are inside /content.xml, but we need to grab  
> the 'title' element from /meta.xml (a sibling of /content.xml), but / 
> meta.xml is a sibling inside the ODT ZIP file. How do we get to that?
> I don't think xsl:import would work, since we're in a ZIP file. -->

> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <title>
>    <xsl:choose>
>      <!-- if no title element or h1 elements, display $filename -->
>      <xsl:when test="(/office:document-meta/office:meta/dc:title = '' or
>          not(office:document-meta/office:meta/dc:title)) and
>          office:document-content/office:body/text:h[1] = ''">
>        <xsl:value-of select="$filename"/>
>      </xsl:when>
>      <!-- if no title element, display 1st h1 -->
>      <xsl:when
> test="not(/office:document-meta/office:meta/dc:title) and
>          office:document-content/office:body/text:h[1] != ''">
>        <xsl:value-of select="office:document-content/office:body/ 
text:h[1]"/>>
>      </xsl:when>
>      <!-- display title element from ODT File:Properties -->
>      <xsl:otherwise>
>        <xsl:value-of select="/office:document-meta/office:meta/ 
dc:title"/>>
>      </xsl:otherwise>
>    </xsl:choose>
> </title>
> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
> <xsl:apply-templates
> select="office:document-content/office:automatic- 
styles"/>>
> </head>
> <body>
> <xsl:apply-templates select="office:document-content/office:body/ 
office:text"/>>
> </body>
> </html>
> </xsl:template>

> Clay Leeds
> the.webmaestro@gmail.com

> My religion is simple. My religion is kindness.
> -- HH Dalai Lama of Tibet

--
Ferdinand Soethe


Mime
View raw message