[no subject]

<xsl:template match="Transaction [@transactionType =
'CorporateCardReconciliation' and Header/CorporateCardSettlementType =
'personal']/Lines/Line">
  <txn:Number>
    <xsl:number count="Line[not(ItemDescription = 'Personal Spend')]"/>
  </txn:Number>
  <!-- the rest of your processing here... -->
</xsl:template>


Good luck with the rest of your project here!

~ Scott


-----Original Message-----
From: Adam Lipscombe [mailto:adam.lipscombe@xxxxxxxxxx]
Sent: Thursday, November 29, 2007 10:46 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Help with staregies for outputting an incremental
number in xslt

Michael

Thanks for that.  What I mean by omitted nodes is that my transform does
not output some of the nodes.


 > Incidentally, please don't do this:
 >
 >>    <xsl:variable name="description">
 >>      <xsl:value-of select="../../expensys:ItemDescription"/>
 >>    </xsl:variable>
 >
 > when you mean this:
 >
 >>    <xsl:variable name="description"
 > select="../../expensys:ItemDescription"/>

Point taken - thanks. I do n ot understand the difference between these
constructs. Could you advise?




Here is a snippet of the input xml file:

<Transaction transactionType="CorporateCardReconciliation">
     <Header>

<TransactionIdentifier><![CDATA[CC-DD101-S1]]></TransactionIdentifier>
       <EnterpriseLevel><![CDATA[ACME Engineering]]></EnterpriseLevel>
       <ClaimantName><![CDATA[Dolores Delegate]]></ClaimantName>
       <ClaimantIdentifier><![CDATA[DD101]]></ClaimantIdentifier>
       <Description><![CDATA[BarclayCard Statement:
01/02/2007]]></Description>
       <Currency><![CDATA[GBP]]></Currency>

<CreationDate><![CDATA[2007-11-29T00:00:00+00:00]]></CreationDate>

<ApprovedDate><![CDATA[2007-11-29T00:00:00+00:00]]></ApprovedDate>

<ProcessedDate><![CDATA[2007-11-29T00:00:00+00:00]]></ProcessedDate>
       <TransactionAmount>
         <value><![CDATA[20.00]]></value>
         <sense><![CDATA[credit]]></sense>
       </TransactionAmount>
       <Approvers>
         <Approver><![CDATA[Eddie Executive]]></Approver>
       </Approvers>

<StatementDate><![CDATA[2007-02-01T00:00:00+00:00]]></StatementDate>
       <StatementAmount><![CDATA[35.00]]></StatementAmount>

<CorporateCardSettlementType><![CDATA[personal]]></CorporateCardSettleme
ntType>
     </Header>
     <Lines>
       <Line>
         <ItemDescription><![CDATA[Personal Spend]]></ItemDescription>
         <ItemNumber><![CDATA[1]]></ItemNumber>
         <SpendDate><![CDATA[2007-01-08T00:00:00+00:00]]></SpendDate>
         <CostCentre>
           <costCentreCode><![CDATA[CC1]]></costCentreCode>
         </CostCentre>
         <ProjectCode><![CDATA[CODE01]]></ProjectCode>
         <Accruals>
           <Accrual>
             <accountCode><![CDATA[999998]]></accountCode>
             <amount>
               <value><![CDATA[15.00]]></value>
               <sense><![CDATA[debit]]></sense>
             </amount>
           </Accrual>
         </Accruals>
       </Line>
       <Line>
         <ItemDescription><![CDATA[test dol]]></ItemDescription>
         <ItemNumber><![CDATA[2]]></ItemNumber>
         <SpendDate><![CDATA[2007-01-08T00:00:00+00:00]]></SpendDate>
         <CostCentre>
           <costCentreCode><![CDATA[CC1]]></costCentreCode>
         </CostCentre>
         <ProjectCode><![CDATA[CODE01]]></ProjectCode>
         <Accruals>
           <Accrual>
             <accountCode><![CDATA[100102]]></accountCode>
             <amount>
               <value><![CDATA[20.00]]></value>
               <sense><![CDATA[debit]]></sense>
             </amount>
           </Accrual>
         </Accruals>
       </Line>
     </Lines>
   </Transaction>



The first line above has the description "Personal Spend". I dont want
to output this line in the
transform, if (and only if) the
transactionType="CorporateCardReconciliation" AND the
CorporateCardSettlementType="personal".

In this scenario the first line should the Line that has description =
"test dol", however its
txn:Number shoudl be "1", not "2".
In all other circumstances the "Personal Spend" line should be output as
normal.



Any ideas?


TIA - Adam






Michael Kay wrote:
> I don't understand what you mean by "omitted nodes" (I have trouble
> discussing non-existent objects). If position() counts it, then it
must be
> there. Please show us your XML to illustrate what you are talking
about.
>
> Incidentally, please don't do this:
>
>>    <xsl:variable name="description">
>>      <xsl:value-of select="../../expensys:ItemDescription"/>
>>    </xsl:variable>
>
> when you mean this:
>
>>    <xsl:variable name="description"
> select="../../expensys:ItemDescription"/>
>
> It's the kind of thing that gives XSLT an undeserved reputation for
being
> verbose and slow.
>
> Michael Kay
> http://www.saxonica.com/

Current Thread