[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Number of node in list from stylesheet
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
|
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
|