Subject: Re: [xsl] Tricky inclusion match From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Tue, 29 Mar 2005 09:35:35 -0700 |
Thanks for the 2.0 spec. I'm probably going down that route, with some more questions on data aggregation... I need to summarize data based on the result of an apply-templates. Man, this is getting ugly... but I am faithful there is a very realistic 1.0 solution! So, let me ask the following question: Use a variable to store the results of an apply-templates rule. The result is a new element which might look something like this: <data> <value>1</value> <value>1</value> </data> How can I aggregate (sum) the above data element which is stored in a variable? Karl On Tue, 29 Mar 2005 08:26:15 -0800 (PST), Mukul Gandhi <mukul_gandhi@xxxxxxxxx> wrote: > 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, Mukul Gandhi | Thread | Re: [xsl] Tricky inclusion match, Mukul Gandhi |
RE: [xsl] how match more than one n, Michael Kay | Date | [xsl] New Developer Survey Shows XQ, Tony Lavinio |
Month |