|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Finding position of a node relative to the root in
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() <=
> 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() >
> 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








