[xsl] Using a keys to filter based on [not(someelement)]

Subject: [xsl] Using a keys to filter based on [not(someelement)]
From: Jacquo Johnson <genxgeek@xxxxxxxxx>
Date: Sun, 7 Aug 2005 15:01:09 -0600
Grouping seems pretty easy when defining keys that are inclusive such as:

<xsl:key name="recordByC" match="Record" use="CodeId"/>
<xsl:variable name="uh2" select="key('recordByC','30DAYPM')"/>

but what about using a key to exclude a Record based on a certain
element.  That is, I want to ignore all Records when a <Fodder/>
element is present.

Is using the predicate after the key is resolved the only method:

<xsl:variable name="uh2" select="key('recordByC','30DAYPM')[not(Fodder)]"/>

is there anyway that I can define this within the use attribute of the key?

Thanks in advance...

XML Source:

        <Record>
               <CodeId>30DAYPM</CodeId>
               <AttributeName>LT</AttributeName>
               <OID>daa575325f8675a6</OID>
               <Id>AU  100-3</Id>
               <AttributeValue>YES</AttributeValue>
       </Record>
       <!-- Want to ignore these -->
        <Record>
               <Fodder/>
               <CodeId>30DAYPM</CodeId>
               <AttributeName>LT</AttributeName>
               <OID>daa575325f8675a6</OID>
               <Id>AU  100-3</Id>
               <AttributeValue>YES</AttributeValue>
       </Record>

Current Thread