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

Finding position of a node relative to the root instea

Subject: Finding position of a node relative to the root instead of the parent node
From: "Cynthia DeLaria" <cdelaria@xxxxxxxxx>
Date: Mon, 22 Dec 2003 14:12:27 -0700
instea
Good Day,
 
I have searched the xsl list unsuccessfully for an answer to this
question, although I'm sure something like this has been addressed. I
think I'm just not sure what to search on to find it.
 
I have the following xml snippet:
 
<nr>
    <featured>
        <movie title="Charlie's Angles: Full
Throttle">Description</movie>
        <movie title="28 Days Later">Description</movie>
        <movie title="The Santa Clause 2">Description</movie>
    </featured>
    <also_new>
        <movie title="Northfork" />
        <movie title="Rudy: The Rudy Giuliani Story" />
        <movie title="Russian Ark" />
    </also_new>
</nr>
 
Basically, in the fully-flushed out version of the XML, the <featured>
movies have images and full descriptions, while the <also_new> movies
have only a title and rating. What I need to do is find a way to find
the position of each <movie> node relative to the root, as I need to
create a "print the new releases" page that lists all new releases in
two columns. This is what I tried, but it gives me the position based on
the parent (i.e. <also_new> or <featured>) not relative to the root.
 
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" />
<xsl:template match="/nr">
<html>
<head>
<title>New Releases E-Newsletter</title>
<head>
<body bgcolor="#ffffff" text="#000000" link="#023f7e" alink="#ff0000"
vlink="#023f7e">
Just print out this list.<br />
    <table width="100%">
    <xsl:variable name="thisMany"><xsl:value-of
select="(count(//*[name()='movie']) div 2)" /></xsl:variable>
     <tr>
      <td valign="top" width="50%" class="body2">
      <br />
      <xsl:for-each select="//movie[position() &lt;=
number($thisMany)]">
      <b><i><xsl:value-of select="./@title" /></i></b><br />
      </xsl:for-each>
      <br />
      </td>
      <td valign="top" width="50%" class="body2">
      <br />
      <xsl:for-each select="//*[name()='movie'][position() &gt;
number($thisMany)]">
      <b><i><xsl:value-of select="./@title" /></i></b><br />
      </xsl:for-each>
      <br />
      </td>
     </tr>
    </table>
 </body>
</html>
</xsl:template>
</xsl:stylesheet>
 
Is it possible to get the position relative to the root node? It seems
like this should be very simple, but all of the things I have tried have
not worked to produce the intended outcome.
 
Thank you!

Cynthia
 

 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.