Subject: Re: [xsl] getting distinct content from list (?) From: Kurt George Gjerde <kurt.gjerde@xxxxxxxxxxxxxxxxx> Date: Thu, 22 Aug 2002 19:53:20 +0200 (MET DST) |
On Thu, 22 Aug 2002, Vasu Chakkera wrote: > Your Problem is simple Great. > but without you providing the XML file, nothing much > can be done.can you please send a snip.. of your xml so that its easu to > sort your problem. Sorry. Here it is. XML: <ming> <users> <user id="cynthia" email="cynthia@xxxxxxxxxxx" global-notify="yes"/> <user id="bob" email="bob@xxxxxxxxxxx"/> <user id="janet" email="janet@xxxxxxxxxxxxxxx"/> <user id="jack" email="jack@xxxxxxxxxxx"/> </users> <clients> <client id="frontside"> <admin user="jack"/> </client> <client id="uptown"> <admin user="cynthia"/> </client> <client id="duke"/> </clients> <monitors> <monitor client="frontside"> <notify user="cynthia"/> <notify user="janet"/> </monitor> <monitor client="uptown"> <notify user="janet"/> </monitor> </monitors> </ming> XSL: <xsl:template match="monitor"> <xsl:variable name="myClient" select="@client"/> <xsl:variable name="notifyList"> <xsl:for-each select="notify/@user | /ming/users/user[@global-notify='yes']/@id | /ming/clients/client[@id=$myClient]/admin/@user" > <xsl:sort select="."/> <xsl:variable name="pos" select="position()"/> <xsl:choose> <xsl:when test="last() > 1 and position()=last()"> and </xsl:when> <xsl:when test="position() > 1">, </xsl:when> </xsl:choose> <xsl:value-of select="."/> </xsl:for-each> </xsl:variable> <p> Client: <xsl:value-of select="@client"/><br/> Notify: <xsl:value-of select="$notifyList"/> </p> </xsl:template> For client="frontside" this would output "cynthia, cynthia, jack and janet" (without sorting: "cynthia, jack, cynthia and janet"). thanks, -kurt. > >From: Kurt George Gjerde <kurt.gjerde@xxxxxxxxxxxxxxxxx> > >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > >To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > >Subject: [xsl] getting distinct content from list (?) > >Date: Thu, 22 Aug 2002 16:31:10 +0200 (MET DST) > > > >Hi, > > > >The least of my xslt problems at the moment is this one (I have others > >which I'm sure I'll come back to ;). This is probably easy > >but I just can't see it. Here it goes. > > > >I have an xpath which results in a list like: > >'cynthia', 'bob', 'janet', 'bob', 'jack', 'bob', 'jack'. > > > >These are user IDs collected from different locations in a document. The > >actual xpath is: > > notify/@user | > > /ming/users/user[@global-notify='yes']/@id | > > /ming/client[@id=$myClient]/admin/@user > > > >I need to output this as: "bob, cynthia, jack and janet". > >Without the duplicates (sorted and xslt 1.0). > > > >How? > > > > __________ kurt george gjerde <kurt.gjerde@xxxxxxxxxxxxxxxxx> intermedia uib, university of bergen XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] getting distinct content , Vasu Chakkera | Thread | [xsl] 8bit ascii encoding, Andrew Welch |
RE: [xsl] Newsgroup?, Wendell Piez | Date | [xsl] id() doesn't work!?, Aaron Optimizer Digu |
Month |