Subject: RE: [xsl] Occurences of comma-separated values From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sun, 30 Jul 2006 09:16:40 +0100 |
Your problem breaks into two halves: (a) tokenizing, and (b) grouping. Both steps are much easier with XSLT 2.0 than 1.0. In 2.0 it's simply <xsl:for-each-group select="list/*/@ids/tokenize(.,',')" group-by="."/> <xsl:sort select="current-grouping-key()"/> <xsl:value-of select="current-grouping-key()"/> <xsl:text>: </xsl:text> <xsl:value-of select="count(current-group())"/> </xsl:for-each-group> For XSLT 1.0 you can learn about tokenizing by looking at the string functions/templates at www.exslt.org, and you can learn about grouping at www.jenitennison.com/xslt/grouping Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Smoother@xxxxxx [mailto:Smoother@xxxxxx] > Sent: 29 July 2006 15:08 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Occurences of comma-separated values > > For instance, I have the following XML-File: > > <list> > <item1 ids="a,b,c,e" /> > <item2 ids="b,c,d" /> > <item3 ids="a,c,d,e" /> > <item4 ids="e,f" /> > <item5 ids="a,c,d,e,g" /> > </list> > > I contemplate how to count the occurences of > (a) all ids (e.g. 'a') in the document and > (b) to count the occurences of a specific (known) id (e.g. > 'f') in the document. > > For case a the output should be like this: > > a: 3 > b: 2 > c: 4 > d: 3 > e: 4 > f: 1 > g: 1 > > I started to learn XSL yesterday. For several other problems, > I found an easily adaptable solution on the web, numerous > time on this list here. > But for my current problem, there was no such help available. > Of course, I found here a similar posting which deals with > occurences of equal nodes > (http://www.stylusstudio.com/xsllist/200309/post20830.html), > but I don't know how to adapt it. So please find a solution > and help me and others who have the same problem. > > > Thanks in advance, > > S. Renault > -- > > > Echte DSL-Flatrate dauerhaft f|r 0,- Euro*. Nur noch kurze Zeit! > "Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Occurences of comma-separ, Mukul Gandhi | Thread | [xsl] Occurences of comma-separated, Smoother |
RE: [xsl] Rendering nsbp, Michael Kay | Date | RE: [xsl] populating table with sor, Michael Kay |
Month |