[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Create Table
Subject: Re: [xsl] Create Table From: "Eric J. Bowman" <eric@xxxxxxxxxxxxxxxx> Date: Sat, 27 Mar 2010 01:22:26 -0600 |
> So this answer extends the example already given, by adding the number > () function. > Heh, don't listen to me, I'm still learning myself... number() isn't needed here, as this works just fine: <th><xsl:value-of select='./@lineId+1'/></th> What I've just learned, is that I need to take a closer look at how XSLT processors handle typing, my answer assumed number() was needed in order to perform addition like you were trying, and was thus totally wrong. Anyway, I played around with it a bit more, adding this to my <tr> template: <xsl:param name='x' select='./@lineId'/> And changing the <th> two different ways, as follows: <th><xsl:value-of select='following-sibling::data[@lineId=$x]/@lineId'/></th> <th><xsl:value-of select='following-sibling::data[@lineId=$x+1]/@lineId'/></th> The first line results in <th/>, the second line works as expected. The first line can be rewritten as select='//data[@lineId=$x]/@lineId' and it will work as expected. So I suspect your problem is one of not minding your context node, i.e. you started with this: <xsl:param name='x' select='./@lineId'/> Then, you have <xsl:value-of select='data[@lineId=$x]'/>, which can't work because you haven't selected an axis... So it's hard to know how to specifically help you here -- the 'data[@lineId=$x]' is correct, but only if it's preceded by a proper axis, and followed by '/@lineId' since you're after attribute content, instead of element content. -Eric
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Create Table, Eric J. Bowman | Thread | Re: [xsl] Create Table, bernie bonn |
Re: [xsl] Create Table, Eric J. Bowman | Date | RE: [xsl] Wrap HTML headings and fo, Michael Kay |
Month |
Keywords