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

Re: [Fwd: XSL Grouping and Filtering]

Subject: Re: [Fwd: XSL Grouping and Filtering]
From: M G <row.filter@xxxxxxxxx>
Date: Thu, 14 Oct 2004 10:05:02 +0200
xsl grouping
Hi,

If the following xml is a good example of your document:

<z:foo xmlns:z="foo">
    <z:row ID="1" Parent_ID="0"></z:row>
    <z:row ID="2" Parent_ID="0"></z:row>
    <z:row ID="3" Parent_ID="1"></z:row>
    <z:row ID="4" Parent_ID="3" Exclude_YN = 'P'></z:row>
    <z:row ID="5" Parent_ID="2" Exclude_YN = 'C'></z:row>
</z:foo>

the following xsl produces the output:

Row Id: 1 contains P 
Row Id: 2 contains C 

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:z="foo">

         <xsl:key name="rows-by-parent" match="z:row" use="@Parent_ID" />

       <xsl:template match="/">
               
               <xsl:apply-templates select="z:foo/z:row[@Parent_ID='0']" />
            
       </xsl:template>

       <xsl:template match="z:row[@Parent_ID='0']">
               Row Id: <xsl:value-of select="@ID" />
               
               <xsl:apply-templates select="key('rows-by-parent', @ID)" />
            <br />
       </xsl:template>
       
       <xsl:template match="z:row[@Parent_ID!='0']">
               <xsl:choose>
                   <xsl:when test="@Exclude_YN='P'"> contains P </xsl:when>
                   <xsl:when test="@Exclude_YN='C'"> contains C </xsl:when>
               </xsl:choose>
                   
              <xsl:apply-templates select="key('rows-by-parent', @ID)" />

       </xsl:template>       
       
</xsl:stylesheet>

Hope that helps!

-Mike


On Wed, 13 Oct 2004 11:58:38 +0200, Werner, Wolfgang
<mail@xxxxxxxxxxxxxxxxxxx> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> - -------- Original Message --------
> Subject:        XSL Grouping and Filtering
> Date:   Tue, 12 Oct 2004 13:07:42 -0400
> From:   Renuka Singh (Contractor) <Renuka.Singh@xxxxxxxx>
> To:     'mail@xxxxxxxxxxxxxxxxxxx' <mail@xxxxxxxxxxxxxxxxxxx>
> 
> Hi..
> 
> I've been trying to post a question to the
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx and I am unable to do so, because the
> Exchange server here is set to sent out messages in xhtml format (which
> cannot be changed by an individual user).  I came across your email in
> one of these messages.  I have the following problem adn would really
> appreciate if you could help me out.
> 
> I am currently using xsl keys in my xsl document, to group child nodes
> under
> parent nodes.  This is being run against an ADO recordset so my key looks
> something like this :
> 
> <xsl:key name="rows-by-parent" match="z:row" use="@Parent_ID" />
> 
> My hierarchy can go several levels deep (about 10 levels are currently
> supported).  If  any one of the children (n levels deep) of a level 1
> parent
> node(@Parent_ID = 0), has a variable @Exclude_YN = 'P' or Exclude_YN = 'C',
> then I wish to display a text message next to that Parent Node, in my HTML
> document.
> 
> I don't know how to apply the filter to child nodes n levels deep in the
> hierarchy using an xsl:key.  I am using keys to group currently.
> 
> Any suggestion is highly appreciated.
> 
> Thank you.
> 
> RS
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (Cygwin)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
> 
> iD8DBQFBbPxNqjaicDyx8o8RApn/AJ47WgdFMAFSrTn7WYVgTaXbcsL4gACeNs1m
> u8C1FruO+RPx+SSDKHNi7Yk=
> =/TDp
> -----END PGP SIGNATURE-----
> 
> 


-- 

[row.filter]

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.