|
Subject: [xsl] Sorting Sibling Nodes !!! From: "Ciaran Byrne" <ciaran.byrne@xxxxxxx> Date: Wed, 16 May 2001 20:31:05 +0100 |
Hi all,
I have some content of the form..
<template/><do type="accept"><go href="foo"/></do>
what I want is the following...
if 'do' is a sibling of template(as above) then place 'do'
inside template ie.
<template><do type="accept"><go href="foo"/></do></template>
otherwise leave 'template' as is..
<template></template>.
(NB - I need the output as <template></template> and not <template/>).
I've tried this with the XSL below(Snippet!), However I'm getting duplicate
outputs. Is this because the 'do' gets matched once as a sibling and
a second time when I have <xsl:apply-templates
select="following-sibling::do"/> ?.
In any matter, could someone suggest some ideas ;o)
<!-- ELEMENT do -->
<xsl:template match = "do">
<xsl:element name="{name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<!-- ELEMENT template -->
<xsl:template match="template">
<xsl:choose>
<xsl:when test="following-sibling::do">
<xsl:element name="{name()}">
<xsl:apply-templates select="following-sibling::do"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="{name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Thanks for the help,
Ciaran.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Supported encodings, Michael Kay | Thread | Re: [xsl] Sorting Sibling Nodes !!!, Jeni Tennison |
| Re: [xsl] nested templates?, Kurt Cagle | Date | RE: [xsl] nested templates?, Chris Bayes |
| Month |