Subject: Re: [xsl] Re: count(preceding-sibling ) not working From: Steve <subsume@xxxxxxxxx> Date: Mon, 3 Dec 2007 09:01:28 -0500 |
You mentioned you needed to do some filtering--is this because you only want some previous Accrual nodes counted? In this case, this won't work because those nodes filtered-out nodes will start appearing. -S On Dec 3, 2007 8:19 AM, Adam Lipscombe <adam.lipscombe@xxxxxxxxxx> wrote: > > Thanks... > > > > > presumably you get 0 bcause there are no preceding siblings. > > that is children of the same parent. > > Yes of course, sorry for being so thick. I see that and understand the problem. But I am having > trouble finding a solution: > > What I want to do is to count the total number of Accrual nodes that precede the current Accrual > node. Both the siblings of the current Accrual node and any Accrual children of all preceding > Accruals nodes. > > > I have tried this: > > <xsl:for-each select="expensys:Lines/expensys:Line/expensys:Accruals/expensys:Accrual"> > > <txn:PSIBS> > <xsl:number value="count(preceding-sibling::*)"/> > </txn:PSIBS> > > > I cannot use a filter on the for-each loop 'cos AFAICS this would mean restructuring the whole > transform. With my current level of XSL knowledge that would take an unacceptably long time :-) > > > Many thanks for any help.... > > > Adam > > > > Sample input file snippet: > > > <Lines> > <Line> > <ItemDescription><![CDATA[MAPIC - Trip to see venues for drinks reception]]></ItemDescription> > <ItemNumber><![CDATA[1]]></ItemNumber> > <SpendDate><![CDATA[2007-10-01T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[6350]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[72000]]></accountCode> > <amount> > <value><![CDATA[15.50]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[MAPIC - Taxi airport to home ]]></ItemDescription> > <ItemNumber><![CDATA[2]]></ItemNumber> > <SpendDate><![CDATA[2007-10-01T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[6350]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[72000]]></accountCode> > <amount> > <value><![CDATA[53.90]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[MAPIC - Viewing venues for drinks reception]]></ItemDescription> > <ItemNumber><![CDATA[3]]></ItemNumber> > <SpendDate><![CDATA[2007-10-02T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[6350]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[72010]]></accountCode> > <amount> > <value><![CDATA[193.85]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[4]]></ItemNumber> > <SpendDate><![CDATA[2007-10-13T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[12.00]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[5]]></ItemNumber> > <SpendDate><![CDATA[2007-10-13T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[12.00]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[6]]></ItemNumber> > <SpendDate><![CDATA[2007-10-13T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[49.32]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[7]]></ItemNumber> > <SpendDate><![CDATA[2007-10-14T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[5.70]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[8]]></ItemNumber> > <SpendDate><![CDATA[2007-10-14T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[15.00]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[9]]></ItemNumber> > <SpendDate><![CDATA[2007-10-23T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[4.99]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[FPGC - Photo and frame for PMT as requested by James > Darkins]]></ItemDescription> > <ItemNumber><![CDATA[10]]></ItemNumber> > <SpendDate><![CDATA[2007-10-23T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[73430]]></accountCode> > <amount> > <value><![CDATA[17.43]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > <Accrual> > <accountCode><![CDATA[30540]]></accountCode> > <amount> > <value><![CDATA[3.05]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[11]]></ItemNumber> > <SpendDate><![CDATA[2007-10-24T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[13.91]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > <Line> > <ItemDescription><![CDATA[Personal spend]]></ItemDescription> > <ItemNumber><![CDATA[12]]></ItemNumber> > <SpendDate><![CDATA[2007-10-28T00:00:00+01:00]]></SpendDate> > <CostCentre> > <costCentreCode><![CDATA[FPGC]]></costCentreCode> > <externalReference1><![CDATA[2003]]></externalReference1> > </CostCentre> > <ProjectCode><![CDATA[9000]]></ProjectCode> > <Accruals> > <Accrual> > <accountCode><![CDATA[999998]]></accountCode> > <amount> > <value><![CDATA[2.37]]></value> > <sense><![CDATA[debit]]></sense> > </amount> > </Accrual> > </Accruals> > </Line> > </Lines> > > > > > > > David Carlisle wrote: > >> What am I doing wrong? > > > > well you haven't shown any sopurce code, so we have to guess, but > > presumably you get 0 bcause there are no preceding siblings. > > that is children of the same parent. If each Accruals element just has > > a single Accrual child, then that will be the case. > > > > > >> I know could use "position()", but after I solve this problem I need to apply a filter to the PSIBS > >> value. > > > > > > Most likely you just need to do the filter before you use position. > > > > > > <xsl:for-each > > select="expensys:Lines/expensys:Line/expensys:Accruals/expensys:Accrual[some > > filter goes here"> > > > > <txn:PSIBS> > > <xsl:value-of select="position()"/> > > </txn:PSIBS> > > > > > > David > > > > > > > > ________________________________________________________________________ > > The Numerical Algorithms Group Ltd is a company registered in England > > and Wales with company number 1249803. The registered office is: > > Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. > > > > This e-mail has been scanned for all viruses by Star. The service is > > powered by MessageLabs. > > ________________________________________________________________________ > > > > > > > > > > -- > Adam Lipscombe > > T: 01872 575083 > M: 07957 548686 > E: adam.lipscombe@xxxxxxxxxx
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: count(preceding-sibli, Florent Georges | Thread | RE: [xsl] count(preceding-sibling ), Michael Kay |
Re: [xsl] Re: count(preceding-sibli, Florent Georges | Date | Re: [xsl] How to use the same expre, David Carlisle |
Month |