[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: getting distinct content from list (?)

Subject: Re: getting distinct content from list (?)
From: Kurt George Gjerde <kurt.gjerde@xxxxxxxxxxxxxxxxx>
Date: Thu, 22 Aug 2002 19:53:20 +0200 (MET DST)
xsl when distinct
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() &gt; 1 and position()=last()"> and </xsl:when>
        <xsl:when test="position() &gt; 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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.