Re: : Re: [xsl] complex XPATH test

Subject: Re: : Re: [xsl] complex XPATH test
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Tue, 17 Jul 2001 13:07:20 +0100
Hi Adam,

A slightly different tack from Wendell's solution would be to work out
the containing block element, as he did, and then try to find out
whether the first text nodes following the br element has that same
block element as an ancestor:

<xsl:template match="br">
  <!-- identify the containing block -->
  <xsl:variable name="containing-block"
                select="ancestor::*[self::p or self::li][1]" />
  <!-- if the immediately following text node has an ancestor element
       that is the $containing-block element, then the br is not
       the last thing within the $containing-block element -->
  <xsl:if test="following::text()[1]/ancestor::*
                  [generate-id() = generate-id($containing-block)]">
    <br />
  </xsl:if>
</xsl:template>

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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


Current Thread