If the output has a simple relationship to the input then this can be done
using position(). If not, I would recommend a two-pass solution: first
produce the output tree in your first example, then run a second phase to
number the nodes (using position()).
Michael Kay
# -----Original Message-----
# From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-
# list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of James Paul
# Sent: 10 March 2004 03:52
# To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
# Subject: [xsl] Sequencing, Numbering, and Count
#
# While producing my XML output with XSLT I also need to count the number of
# nodes I created and add sequence numbers to each node. Please note that I
# cannot use the count function on the original document as there is no way
# to retrieve this data without producing the transformed data first.
#
# Eg. (This is what it looks like now)
#
# <ePASS>
# <Document>
# <Quote>
# <Data>....</Data>
# </Quote>
# </Document>
# <Document>
# <Quote>
# <Data>....</Data>
# </Quote>
# </Document>
# <Document>
# <Quote>
# <Data>....</Data>
# </Quote>
# </Document>
# </ePASS>
#
# This is what needs to look like:
#
# <ePASS>
# <Document seq="1">
# <Quote>
# <Data>....</Data>
# </Quote>
# </Document>
# <Document seq="2">
# <Quote>
# <Data>....</Data>
# </Quote>
# </Document>
# <Document seq="3">
# <Quote>
# <Data>....</Data>
# </Quote>
# </Document>
# </ePASS>
#
# Where the "seq" number is just a counter that is incremented by one. Plus
# once the document is produced I need to set the maximum sequence number
# equal to a variable (In the above example it is 3) so that I can pass this
# information back to my middleware.
#
# Thanks,
# James Paul
#
# XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list