Mark,
At 12:44 PM 3/29/2007, you wrote:
My inclination is build the main loop on the terminal steps, ie.
for-each select="//step[not(step)]". But I'm not sure where to go after
that, since climbing backward through parent::step will build the list
in reverse.
Actually, it won't, since xsl:apply-templates and xsl:for-each are
both specified to output their results in an order corresponding to
the document order of the input.
Perhaps storing the id of the terminal step and passing
that along to a recursive template that walks descendants of
ancestor::step[1]?
Because of the above, this isn't necessary.
(BTW, the name attribute is for demonstration only, I don't have an
attribute that I can sort on.)
Even if the order of the output weren't document order, one could
still calculate (and thus sort on) the depth of the node:
<xsl:sort select="count(ancestor-or-self::*)"/>
... but try without this: I think your idea should work.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--