Re: [xsl] XSL design question

Subject: Re: [xsl] XSL design question
From: Tom Schutzer-Weissmann <xsl@xxxxxxxxxxxxxxxx>
Date: Tue, 2 Sep 2003 19:09:28 +0000
Hi Pete,
><!ELEMENT title (#PCDATA | b | i | tt | index)*>
> This won't work either:
> <xsl:apply-templates select="*[not(self::index)]"/>

How doesn't it work? It should, in "title" context, because it means apply 
templates to every child that isn't an index. eg

<xsl:template match="title">
	<xsl:apply-templates select="*[not(self::index)]"/>

> This, too will not work:
> <xsl:apply-templates select="*[not(descendant::index)]"/>
This shouldn't work (if the context node is a "title") because it means apply 
templates to all children that don't have an index descendant. 

You could use modes, just as you suggested:
<xsl:template match="title">
	<xsl:apply-templates mode="toc"/>
<xsl:template match="i|b|tt" mode="toc">
	<!-- do something -->
<xsl:template match="index" mode="toc"/> <!-- do nothing -->

Some very organised people use modes all the time, except for the first 
template that matches /.

Tom SW
"The facts are hideous, but we must face them" - Bertie Wooster

 XSL-List info and archive:

Current Thread