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

Re: Counting Child Nodes

Subject: Re: Counting Child Nodes
From: "Ritu" <rkama@xxxxxxxxxxx>
Date: Tue, 26 Nov 2002 17:05:23 -0600
xsl count child nodes
To count all the *data* elements within the document- you can do something
like

<xsl:template match="/">
  <xsl:variable name="total-el">
   <xsl:value-of select="count(descendant::data)"/>
  </xsl:variable>
</xsl:template>

To count all children - you can do count(descendant::*) - This will also
count <text> nodes.

To count all children directly under root/data - do count(*)

Now you have to compute the values of T and R

Ritu Kama
Sarvega Inc
745, McLintock Dr
Burr Ridge
IL - 60527
----- Original Message -----
From: "bix xslt" <bix_xslt@xxxxxxxxxxx>
To: <XSL-List@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, November 26, 2002 4:38 PM
Subject:  Counting Child Nodes


> All,
>
>     As I've been developing my xsl scripts, I've realized that it would be
> beneficial to be able to write my xslt in such a way that it would
> dynamically format my page for an optimal view based on a few factors.
> Essentially, I have a very large table which contains data from its child
> node and its grandchild node.  An example xml file would be:
>
> <data><text>Title for web page</text>
>     <data><text>Motivation</text>
>         <data><text>White Pages</text></data>
>         <data><text>References</text></data>
>     </data>
>     <data><text>Requirements</text>
>         <data><text>Software</text></data>
>         <data><text>Hardware</text></data>
>     </data>
>     <data><text>Design</text>
>         <data><text>Interfaces</text>
>             <data><text>Hardware/Software</text></data>
>             <data><text>Legacy Software</text></data>
>         </data>
>         <data><text>Functions</text></data>
>     </data>
>     <data><text>Implementation</text></data>
>     <data><text>Verification</text></data>
>     <data><text>Documentation</text></data>
>     <data><text>Archive</text></data>
> </data>
>
>     Note that there are 7 <data> elements that are children of the root
> node.  In my table, I could display each one in their own row or column,
but
> I would prefer to put three children on the first and second lines, and
then
> a single child on the third line.  An example of this would be:
>
>     One per column:
>         [Motivation]    [Requirements]    [Design]    [Implementation]
.
> .. . .
>
>     One per row:
>         [Motivation]
>         [Requirements]
>         [Design]
>         .
>         .
>
>     Optimal View:
>         [Motivation]            [Requirements]    [Design]
>         [Implementation]    [Verification]        [Documentation]
>                                     [Archives]
>
>     The algorithm I would use to determine how many rows and columns would
> be as follows:
>         T = Total number of children
>         R = Number of children displayed per row
>         C = Number of columns needed
>
>     <!-- find T -->
>     T = ??
>
>     <!-- initialize the values -->
>     set R = 1
>     set C = T
>
>     <!-- setup a loop to find the best numbers -->
>     while ( R < C and C > 1 )
>         R = R + 1
>         C = C - 1
>
>     <!-- numbers should now be close to optimal, so start displaying -->
>
>
>     So, my question is two-fold:  How do I find T, and is there a slick
way
> of converting the psuedo code above into XSLT?
>
> Thanks,
> Bix
>
>
>
>
>
> _________________________________________________________________
> Tired of spam? Get advanced junk mail protection with MSN 8.
> http://join.msn.com/?page=features/junkmail
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread
  • Counting Child Nodes
    • bix xslt - Tue, 26 Nov 2002 17:34:01 -0500 (EST)
      • Jorge A. Salido - Tue, 26 Nov 2002 17:58:52 -0500 (EST)
      • Ritu - Tue, 26 Nov 2002 18:01:35 -0500 (EST) <=
      • Greg Faron - Tue, 26 Nov 2002 18:03:38 -0500 (EST)
        • Paul - Tue, 26 Nov 2002 20:32:09 -0500 (EST)
          • Paul - Thu, 28 Nov 2002 11:08:44 -0500 (EST)

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.