Subject: Re: [xsl] Tricky inclusion match From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Tue, 29 Mar 2005 08:26:15 -0800 (PST) |
Following is a XSLT 2.0 solution.. <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="text" /> <xsl:template match="/data"> <xsl:variable name="temp1" select="colors/color" /> <xsl:for-each select="pictures/picture"> <xsl:variable name="temp2" select="distinct-values(color)" /> <xsl:if test="count(distinct-values($temp1[.=$temp2])) > 1"> picture sample #<xsl:value-of select="@sample" /><xsl:text>
</xsl:text> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> The expression distinct-values($temp1[.=$temp2]) finds the intersection of sequences $temp1 and $temp2. XSLT processor used: Saxon 8.3 .. Regards, Mukul --- Karl Stubsjoen <kstubs@xxxxxxxxx> wrote: > Okay, > Lets say you have a set of colors and you have a > whole bunch of > pictures and you want to match on all pictures who > have one or more of > the given colors but you have to at least match on 2 > of them (unique, > so not red and red - so a picture could list red > twice but that would > not be a match). I'm trying to use keys and > grouping to solve this > but thinking that I might be making this more > difficult. At any rate, > I'm stuck and would appreciate some help : ) > > Sample Data (expected results below): > > <data> > <colors> > <color>red</color> > <color>blue</color> > <color>fucia</color> > <color>violet</color> > </colors> > <pictures> > <picture sample="1"> > <color>black</color> > <color>grey</color> > <color>white</color> > </picture> > <picture sample="2"> > <color>red</color> > <color>green</color> > <color>brown</color> > <color>blue</color> > </picture> > <picture sample="3"> > <color>purple</color> > <color>orange</color> > </picture> > <picture sample="4"> > <color>blue</color> > <color>green</color> > <color>red</color> > </picture> > <picture sample="5"> > <color>fucia</color> > <color>green</color> > <color>violet</color> > </picture> > <picture sample="6"> > <color>red</color> > <color>brown</color> > <color>red</color> > </picture> > </pictures> > </data> > > Expected Results (picture matches based on 2 or more > colors used and > listed in colors above) > > picture sample #2 > picture sample #4 > picture sample #5 > > __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Tricky inclusion match, Wendell Piez | Thread | Re: [xsl] Tricky inclusion match, Karl Stubsjoen |
Re: [xsl] removing characters from , David Carlisle | Date | Re: [xsl] disable-output-escaping d, karl Rajangam |
Month |