[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] unable to resolve intersect/union operator


Subject: Re: [xsl] unable to resolve intersect/union operator
From: Rahil <qamar_rahil@xxxxxxxxxxx>
Date: Thu, 19 May 2005 16:32:40 +0100

Sorry but its still not working out and Im getting quite sick of it !

David Carlisle wrote:

> A/Value[for $a in . return /Parts/B/Value[contains(.,$a)]]




Heres what Ive done so far (which aint at the end of it)

<xsl:variable name="interim" select="$map/TopConcept/*[name()=$ATerm]"/>
<xsl:if test="$interim and $interim/B/Class[not(.=$notPresent)]">
<xsl:variable name="aVal" select="normalize-space($interim/A/Value)"/>
<xsl:variable name="bVal" select="normalize-space($interim/B/Value)"/>
<Test>Test: <xsl:value-of select="distinct-values($aVal[for $a in . return $bVal[contains(.,$a)]])" separator=", "/></Test>
</xsl:if>


Actual Output:
<Test>Test: Handle</Test>

Expected Output:
<Test>Test: Handle,Bolt</Test>

I have to bear in mind that the order of appearance of matching values may differ in the <B> node and might appear in either B/Class or B/Value.

I really am sorry for posting so many queries but I just cant seem to resolve this one ! My head's aching now ! Much appreciate your help.

Thanks
Rahil


-------------- input.xml -------------- <Parts> <A> <Class id="123" type="none">Parts</Class> <Value id="345" type="CODED_TEXT">Handle</Value> <Value id="456" type="CODED_TEXT">Bolt</Value> <Value id="567" type="CODED_TEXT">Nut</Value> </A> <B> <Class id="none" type="Property">No ClassName</Class> <Value id="234" type="Property">hasProperty Handle</Value> <Value id="789" type="Property">hasProperty Screw</Value> <Value id="901" type="Property">hasProperty Bolt</Value> </B> </Parts>

Expected match:
Handle, Bolt


Thanks


Rahil


Current Thread