Subject: [xsl] How do I set up a counter or sequence number variable From: "Catherine Wilbur cwilbur@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 3 Nov 2014 19:48:24 -0000 |
Looked on the archive and did not see anything similar to what I am doing. I am trying to put a sequence number for each output line. Each time I output a line I want to increment the counter by one. Noticed on internet once you change a variable in XSLT you cannot change the value. How do I set up a sequence number. This is how my output is coming out. 1, PO-305, USD, 22, ABE, 2014082450002181, ACCOUNTINGDEPARTMENT, 1.0742, 20, 18105.8820, 201411031316LUSD, 0, 20140724, 20141103 1, PO-305, USD, 22, ABE, 2014082450002181, ACCOUNTINGDEPARTMENT, 1.0742, 2, 18105.8430, 201411031316LUSD, 0, 20140724, 20141103 Want the output to come out as follows (first field is my sequence number) 1, PO-305, USD, 22, ABE, 2014082450002181, ACCOUNTINGDEPARTMENT, 1.0742, 20, 18105.8820, 201411031316LUSD, 0, 20140724, 20141103 2, PO-305, USD, 22, ABE, 2014082450002181, ACCOUNTINGDEPARTMENT, 1.0742, 2, 18105.8430, 201411031316LUSD, 0, 20140724, 20141103 Here is my XSLT code <?xml version="1.0" encoding="UTF-8" ?> <!-- New document created with EditiX at Thu Oct 23 16:28:34 EDT 2014 --> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:err="http://www.w3.org/2005/xqt-errors" exclude-result-prefixes="xs xdt err fn" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date"> <xsl:output method="text" indent="no"/> <xsl:variable name="GLDateValue" select="format-date(current-date(),'[Y0001][M01][D01]')"/> <xsl:variable name="CurrDateTimeValue" select="format-dateTime(current-dateTime(),'[Y0001][M01][D01][H01][m01]')"/> <!-- OUSTANDING OUTPUT DATA ISSUES --> <!-- xsl:value-of select="../../../../../hardcode_RemarkString" />, derived field --> <!-- xsl:value-of select="../../../../../hardcode_PayTerms" />, derived from part of invoice/invoice_number --> <!-- xsl:value-of select="../../../../../hardcode_Attachments" />, derived from part of invoice/invoice_number --> <xsl:template name="iterate"> <xsl:param name="length" select="5"/> <xsl:param name="i" select="1"/> <pos><xsl:value-of select="$i"/></pos> <xsl:if test="$length > 1"> <xsl:call-template name="iterate"> <xsl:with-param name="length" select="$length - 1"/> <xsl:with-param name="i" select="$i + 1"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template match="/"> <xsl:for-each select="payment_data/invoice_list/invoice/invoice_line_list/invoice_line/fund_info_list/fund_info/amount"> <xsl:variable name="inv" select="../../../../.."/> <xsl:variable name="InvoiceDateValue" select="translate(../../../../../invoice_date,'/','')"/> <xsl:variable name="InvoiceVendorNo" select="../../../../../vendor_FinancialSys_Code"/> <xsl:variable name="InvoiceDateYYYYMMDD" select="concat(substring($InvoiceDateValue,5,4),substring($InvoiceDateValue,1,2),substring($InvoiceDateValue,3,2))"/> <xsl:variable name="InvoiceCurrency" select="$inv/invoice_amount/currency"/> <xsl:variable name="InvoicePOLineOwner" select="../../../../invoice_line/po_line_info/po_line_owner"/> <xsl:variable name="FISVendorNo"> <xsl:choose> <xsl:when test="string-length($InvoiceVendorNo)!=0"> <xsl:value-of select="number($InvoiceVendorNo)"/> </xsl:when> <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="POOwnerType"> <xsl:choose> <xsl:when test="contains($InvoicePOLineOwner, 'Law') or contains($InvoicePOLineOwner, 'LAW') "> <xsl:value-of select="'W'"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="'L'"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="LibrBatchNo" select="concat($CurrDateTimeValue,$ POOwnerType,$InvoiceCurrency)"/> <xsl:variable name="inv" select="../../../../.."/> <xsl:value-of select="count(sum), $inv/(invoice_number, invoice_amount/currency, invoice_amount/sum, vendor_code, unique_identifier, payment_method, invoice_exchange_rate_list/exchange_rate/rate), sum, ../external_id, $LibrBatchNo, $FISVendorNo, $InvoiceDateYYYYMMDD, $GLDateValue" separator=", "/> <xsl:text>
</xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> _____________________________________________________________________ Catherine Wilbur | Senior Application Programmer | IT Services 401 Sunset Avenue, Windsor ON Canada N9B 3P4 (T) 519.253.3000 Ext. 2745 | (F) 519.973.7083 | (E) cwilbur@xxxxxxxxxxx www.uwindsor.ca/its
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: XSLT 3.0: What is the, Dimitre Novatchev dn | Thread | Re: [xsl] How do I set up a counter, G. Ken Holman g.ken. |
Re: [xsl] Re: XSLT 3.0: What is the, Dimitre Novatchev dn | Date | Re: [xsl] How do I set up a counter, Martin Honnen martin |
Month |