Subject: Re: [xsl] How to sort sibling elements based on attribute of child element From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Mon, 06 Jul 2009 17:57:25 -0400 |
<Root> <Stuff>stuff</Stuff> <Annotation> <Comment Priority="1">my first comment</Comment> </Annotation> <Annotation> <Comment Priority="3">my third comment</Comment> </Annotation> <Annotation> <Comment Priority="2">my second comment</Comment> </Annotation> <Bother>bother</Bother> </Root>
Using XSL 1.0 / MSXML6.0, I want to produce the Annotation elements sorted by @Priority, e.g.
stuff my first comment my second comment my third comment bother
Constraints:
1. Preceding and following elements e.g. <Stuff> and <Bother>, and possibly other elements, are optional in the source XML, but must be output in sequence wrt comments
<xsl:template match select="/*"> <xsl:apply-templates select="Annotation[1]/preceding-sibling::*"/> <xsl:apply-templates select="Annotation"> <xsl:sort select="*/@Priority"/> </xsl:apply-templates> <xsl:apply-templates select="Annotation[last()]/following-sibling::*"/> </xsl:template>
Cheers, Wendell
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx 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 ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to sort sibling elements , Philip Steiner | Thread | Re: [xsl] How to sort sibling eleme, Wendell Piez |
[xsl] How to sort sibling elements , Philip Steiner | Date | Re: [xsl] How to sort sibling eleme, Wendell Piez |
Month |