|
Subject: RE: [xsl] my node position within a certain context, efficiently? From: Syd Bauman <Syd_Bauman@xxxxxxxxx> Date: Sat, 25 Oct 2008 15:07:31 -0400 |
MG> It seems, a simple position() function would work here,
Thank you. While the actual code you posted doesn't work, a minor
modification thereof comes extremely close. Using position() as you
demonstrate in your reply
a) doesn't quite meet use-case, as this needs to be issued from the
//box//thing template, and
b) results in 2 <box> containers in the output
The obvious slight modification to this suggestion comes a lot
closer:
<xsl:template match="/">
<result>
<xsl:apply-templates select="//box//thing"/>
</result>
</xsl:template>
<xsl:template match="box//thing">
<thing myCount="{position()}">
<xsl:value-of select="."/>
</thing>
</xsl:template>
This results in all of the <thing> elements being counted
irrespective of their position within a <box>, though, whereas I had
asked to count their positions with respect to their ancestor <box>.
(Turns out for my real use-case, this isn't a very important
constraint, so in a pinch this solution would do, thank you.)
MK> I would use ... <xsl:number from="box"/>
Thank you! "I should have known to look at <xsl:number>, that bag of
holding of XSLT counting tricks" I thought to myself. But then I
tired it, and it didn't work, producing exactly what I didn't want
(count in relation to parent, not box). But, recalling there was a
lot more nuance to this element, I went and re-read the material on
<xsl:number> in your book. After adding
level="any"
to my <xsl:number>, I get exactly the desired output. Yay!
Thanks again to both of you.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] my node position within a, Michael Kay | Thread | Re: [xsl] my node position within a, Mukul Gandhi |
| Re: [xsl] Elements and functions av, Dimitre Novatchev | Date | Re: [xsl] Identifier attribute (was, Rowan Sylvester-Brad |
| Month |