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 |