OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: DOCBOOK-APPS: XSL: transforming DocBook


On Sun, Feb 10, 2002 at 03:37:08PM +0100, Jochen Hein wrote:
> 
> I'm still struggling with a DocBook to foreign DTD translation.  All
> earlier tips have helped me, so thanks to all of you.  What I have to
> do know is the following:
> 
> Docbook has the content model:
> <appendix><title>a title</title>...</appendix>
> <appendix><title>a second title</title>...</appendix>
> <appendix><title>a third title</title>...</appendix>
> 
> What I have to generate is:
> <appendix>
> <chapter><title>a title</title>...</chapter>
> <chapter><title>a second title</title>...</chapter>
> <chapter><title>a third title</title>...</chapter>
> </appendix>
> 
> Currently I misuse a <part> in Docbook, but I'd like to avoid that.
> I do find the first appendix with XSL, but I don't seem to get it
> done.  Any ideas?

Sure, you can have the first appendix process all
of its following-siblings, like this:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="1.0">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="appendix[1]">
  <appendix>
    <chapter>
      <xsl:apply-templates/>
    </chapter>
    <xsl:for-each select="following-sibling::appendix">
      <chapter>
        <xsl:apply-templates/>
      </chapter>
    </xsl:for-each>
  </appendix>
</xsl:template>

<xsl:template match="appendix[position() != 1]">
</xsl:template>

<xsl:template match="title">
  <xsl:copy-of select="."/>
</xsl:template>

</xsl:stylesheet>

The empty <xsl:template match="appendix[position() != 1]">
makes sure you don't double process the other appendixes.


Bob Stayton                                 400 Encinal Street
Publications Architect                      Santa Cruz, CA  95060
Technical Publications                      voice: (831) 427-7796
Caldera International, Inc.                 fax:   (831) 429-1887
                                            email: bobs@caldera.com


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC