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

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 :-).


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 />

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
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:

Current Thread