[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] [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: 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/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|