Subject: Re: How to sort sibling elements based on attribute of child element
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 06 Jul 2009 18:01:12 -0400
|
Hi again,
At 05:57 PM 7/6/2009, I wrote:
Assuming this is the case, try
<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>
Also, as a fail safe, one might care to add:
<xsl:template match="/*[not(Annotation)]" priority="2">
<xsl:apply-templates/>
</xsl:template>
which will override the template above in cases where the document
element "/*" has no Annotation children -- when it would emit nothing.
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
======================================================================
|