Subject: Re: 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 :)
|