| Subject: Re: [xsl] question about apply-templates / following-sibling From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 12 Dec 2002 15:52:37 GMT | 
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
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] question about apply-temp, Marko Petersen | Thread | Re: [xsl] question about apply-temp, Marko Petersen | 
| Re: [xsl] question about apply-temp, Marko Petersen | Date | [xsl] About validating post xsl, ARGEXT-GALASSI, DANI | 
| Month |