Re: [xsl] Element selection based on different overlapping descendant subsets

Subject: Re: [xsl] Element selection based on different overlapping descendant subsets
From: andrew welch <andrew.j.welch@xxxxxxxxx>
Date: Wed, 1 Feb 2006 12:02:36 +0000
> Define each known table type as a key:
>
> <xsl:key name="m-table" match="table[.//ROW][.//CELL][.//A]"
> use="generate-id()"/>
>
> <xsl:key name="n-table" match="table[.//TYPING][.//CODE]"
use="generate-id()"/>
>
> The m-table key then contains all the tables that fit the description
> of an "M table", as so on.
>
> Then when you process each <TABLE> element, you can easily check what
> type of table it is:
>
> <xsl:template match="TABLE">
>   <xsl:choose>
>     <xsl:when test="key(m-table, generate-id())">
>       I'm an m-table
>     </xsk:when>
>     <xsl:when test="key(n-table, generate-id())">
>       I'm an n-table
>     </xsk:when>

I've used a mixture of cases there, make sure you the correct one in
the real thing :)

Current Thread