Re: [xsl] Finding position of a node relative to the root instead of the parent node

Subject: Re: [xsl] Finding position of a node relative to the root instead of the parent node
From: Mukul Gandhi <mukulgw3@xxxxxxxxx>
Date: Mon, 22 Dec 2003 17:17:48 -0800 (PST)
You may try the following XSL --

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="xml" version="1.0"
encoding="UTF-8" indent="yes"/>
<xsl:template match="/nr">
<xsl:variable name="result">
  <xsl:for-each select="featured/movie">
    <a/>
  </xsl:for-each>
  <xsl:for-each select="also_new/movie">
    <a/>
  </xsl:for-each>
</xsl:variable>

<xsl:for-each select="msxsl:node-set($result)/a">
   <xsl:value-of select="position()"/>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

--- Cynthia DeLaria <cdelaria@xxxxxxxxx> wrote:
> 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
> ve:  http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

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


Current Thread