RE: [xsl] Catch ALL | Failed template rule

Subject: RE: [xsl] Catch ALL | Failed template rule
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 21 Mar 2005 16:37:52 -0000
If you're really determined you could do


<xsl:variable name="dummy" as="element()">
  <dummy/>
</xsl:variable>

...

  <xsl:apply-templates select="(ABC/D, $dummy)[1]"/>

<xsl:template match="dummy">
  <something/>
</xsl:template>

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] 
> Sent: 21 March 2005 16:09
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Catch ALL | Failed template rule
> 
> That's what I figured.  I was hoping to avoid such.  It's much cleaner
> to right a single apply-templates rule.  Uggg.
> 
> 
> 
> On Mon, 21 Mar 2005 15:54:06 GMT, David Carlisle 
> <davidc@xxxxxxxxx> wrote:
> > 
> > > How do I setup a template rule for this non-existent match?
> > 
> > You can't: templates are fired by matching nodes, if you 
> select an empty
> > node set, then no templates will be invoked.
> > 
> > If you want something to happen if there is not an ABC/D child do
> > 
> > <xsl:if test="not(ABC/D)">
> > something
> > </xsl:if>
> > 
> > 
> > 
> ______________________________________________________________
> __________
> > This e-mail has been scanned for all viruses by Star. The
> > service is powered by MessageLabs. For more information on 
> a proactive
> > anti-virus service working around the clock, around the 
> globe, visit:
> > http://www.star.net.uk
> > 
> ______________________________________________________________
> __________

Current Thread