[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Sequencing, Numbering, and Count


Subject: RE: [xsl] Sequencing, Numbering, and Count
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 10 Mar 2004 11:03:40 -0000

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@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-
# list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of James Paul
# Sent: 10 March 2004 03:52
# To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
# 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



Current Thread
Keywords