RE: [xsl] Output conditional on preceding nodes.

Subject: RE: [xsl] Output conditional on preceding nodes.
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 07 Dec 2001 14:25:08 -0500
Nick,

At 11:51 AM 12/7/01, you wrote:
I have been given help by this list in choosing the third paragraph
following a header with text 'foo'.  What I'm doing is something like

<xsl:template match="h1[. = 'foo']">
        <xsl:if test="./following::p[3]">
                <xsl:copy-of select="./following::p[3]"/>
        </xsl:if>
</xsl:template>

Just


<xsl:template match="h1[. = 'foo']">
  <xsl:copy-of select="following::p[3]"/>
</xsl:template>

has the same effect, since the node won't be copied if it doesn't exist. :-)

BUT!  I need an exclude version of this.  i.e. If I want everything EXCEPT
the third paragraph, how do I do this?

select="following::p(not(position()=3))"


(Why do I feel like I'm using this technology in ways it wasn't meant to be
used?)

Dunno. It was meant to be used like this! (although one could quibble about an XML design in which the position of nodes among their siblings is this important ... first and last are often special, but third? :-)


Cheers,
Wendell


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