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

Re: : Re: [xsl] complex XPATH test


Subject: Re: : Re: [xsl] complex XPATH test
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 18 Jul 2001 10:51:41 -0400

Jeni,

This is great! very cunning.

I also note your XPath to find the containing block is more efficient than mine (at least in that theoretically it is more amenable to optimization :-).

--Wendell

At 08:07 AM 7/17/01, you wrote:
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>
...


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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




Current Thread
Keywords