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

Re: Number of node in list from stylesheet

Subject: Re: Number of node in list from stylesheet
From: Jeni Tennison <Jeni.Tennison@xxxxxxxxxxxxxxxx>
Date: Tue, 23 May 2000 14:16:49 +0100
free jeni cam
Sebastian Rahtz wrote:
> > number, so January = 01, May = 05 and so on.  So I defined the months in
> > order within the stylesheet itself:
> > 
> > <foo:months>
> >   <foo:month name="January" abbr="Jan" />
> >   <foo:month name="February" abbr="Feb" />
>
>wouldn't it be easier to just say
>
><foo:month name="February" abbr="Feb" number="02"/>

That's what I did in the end.

However, thank you for your reply because thinking about examples to show
that it's not a good solution in situations where you want to add things to
list at random and still be able to number them gave me the following
solution:

  <xsl:variable name="monthNumber">
    <xsl:value-of
    <xsl:value-of

select="format-number(count(document('')//foo:month[following-sibling::foo:m
onth[@name = $monthName]) + 1, '00')" />
  </xsl:variable>

which works, but is a little ugly.

I also found another way that works by using xsl:number.  Within the
template have:

<xsl:variable name="monthNumber">
  <xsl:apply-templates select="document('')//foo:month" mode="getNumber">
    <xsl:with-param name="monthName" select="$monthName" />
  </xsl:apply-templates>
</xsl:variable>

and then create a template:

<xsl:template match="foo:month" mode="getNumber">
  <xsl:param name="monthName" />
  <xsl:if test="@name = $monthName">
    <xsl:number format="01" />
  </xsl:if>
</xsl:template>

This design pattern is useful when you (e.g.) want to number things in a
different document from your input XML.

Cheers,

Jeni

Dr Jeni Tennison
Epistemics Ltd, Strelley Hall, Nottingham, NG8 6PE
Telephone 0115 9061301 ? Fax 0115 9061304 ? Email
jeni.tennison@xxxxxxxxxxxxxxxx



 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.