RE: [xsl] count(preceding-sibling ) not working

Subject: RE: [xsl] count(preceding-sibling ) not working
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 3 Dec 2007 13:15:20 -0000
It looks as if you've misunderstood what the preceding-sibling axis does.
Need to see your source structure to help you understand why.

You also seem to have misunderstood xsl:number. You can use it either to
allocate a number or to format a number or both. In your usage, you're doing
neither; you'll get the same output as if you used xsl:value-of. 

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: Adam Lipscombe [mailto:adam.lipscombe@xxxxxxxxxx] 
> Sent: 03 December 2007 12:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] count(preceding-sibling ) not working
> 
> Folks
> 
> 
> I suspect this is a novice question, so please accept my 
> apologies in advance..
> 
> I have a for-each loop like this:
> 
> <xsl:for-each 
> select="expensys:Lines/expensys:Line/expensys:Accruals/expensy
> s:Accrual">
> 
> <txn:PSIBS>
>    <xsl:number value="count(preceding-sibling::*)"/>
> </txn:PSIBS>
> 
> 
> <!-- More code here -->
> 
> </xsl:for-each>
> 
> 
> 
> The for-each selects a number of nodes, typically 5 - 7, but 
> the value oout in <PSIBS> is usually 0.
> 
> I know could use "position()", but after I solve this problem 
> I need to apply a filter to the PSIBS value.
> 
> What am I doing wrong?
> 
> 
> Thanks - Adam

Current Thread