[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