[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] question about apply-templates / following-sibling


Subject: Re: [xsl] question about apply-templates / following-sibling
From: Marko Petersen <lg002237@xxxxxxxxxxxxxxxx>
Date: Thu, 12 Dec 2002 17:37:23 +0100

Hi,

I did not explained the thing I would like to do correct before, because
the example should not be too complex and so I told that I want to
copy all the elements. Now I see that this was the wrong expression,
because I would like to add this param in every chapter, section and
simplesect, so I think I need to apply templates (and there are some
elements and attributes that are changed, too).

But I will change your code to that and test it.
Can you tell me a good reference where I can see some examples of
how to use keys? I never used them before.

Thanks for help :-)

Marko

At 15:52 12.12.2002 +0000, you wrote:

I suspect that it's possible to do this with a single Tennison-esqe
select expression, but it's simpler to just ignore your dtd expression
and rephrase your English descriptin as an xsl:choose


<xsl:choose> <!-- If the chapter contains a section or simplesect, the para can be inserted right before it --> <xsl:when test="section|simplesect"> <xsl:copy-of select="(section|simplesect)[1]/preceding-sibling::*"/> <para>new stuff</para> <xsl:copy-of select="(section|simplesect)[1]"/> <xsl:copy-of select="(section|simplesect)[1]/following-sibling::*"/> </xsl:when> <!-- but if not, it has to be the last element of chapter, only followed by index elements if present. --> <xsl:otherwise> <xsl:copy-of select="*[not(self::index)[last()]/preceding-sibling::*"/> <para>new stuff</para> <xsl:copy-of select="*[not(self::index)[last()]"/> <xsl:copy-of select="*[not(self::index)[last()]/following-sibling::*"/> <xsl:otherwise> </xsl:choose>

untested...

you could use varables or keys to save  looking up the insertion points
three times on each branch.

David



_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread