Subject: select elements based on value NOT contained in descendant elements
From: cknell@xxxxxxxxxx
Date: Tue, 17 Jul 2007 15:38:47 -0400
|
Consider this structure:
<ROWSET>
<ROW>
<NAME/>
<CREDIT_CARDS>
<CREDIT_CARD>
<ISSUER/>
<NUMBER/>
</CREDIT_CARD>
<CREDIT_CARD>
<ISSUER/>
<NUMBER/>
</CREDIT_CARD>
</CREDIT_CARDS>
</ROW>
</ROWSET>
I need to select the rows who do not have a CREDIT_CARD descendant whose ISSUER descendant contains one of a set of values.
For example, say that I want to select all ROW elements that do not have an ISSUER descendant with one of these values: ABC, MNO, RST
I tried a construct like this, but it failed to filter out the ROWS I expected it to filter,
select="ROW[not(CREDIT_CARDS/CREDIT_CARD/ISSUER= ('ABC','MNO','RST'))]"
Namely, ROW elements which had ISSUER descendants whose text value was one of the three listed strings.
What am I missing here? Am I misusing the not() operator?
Thanks.
--
Charles Knell
cknell@xxxxxxxxxx - email
|