Subject: Re: [xsl] copying complete document, but sort specific childnodes From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Mon, 07 Sep 2009 12:46:50 +0200 |
thanks for your fast reply, but as you already assumed, i need an xslt 1.0 solution.
i should have made it more clear that i'm limited to php5.2.x xslt-capabilities (libxml/libxslt).
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" exclude-result-prefixes="exsl" version="1.0">
<xsl:output indent="yes"/> <xsl:strip-space elements="*"/>
<xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template>
<xsl:template match="group"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates select="*[1]" mode="group"> <xsl:with-param name="grtf"> <xsl:copy-of select="*[1]"/> </xsl:with-param> </xsl:apply-templates> </xsl:copy> </xsl:template>
<xsl:template match="group/*[@sort-order]" mode="group"> <xsl:param name="grtf"/> <xsl:choose> <xsl:when test="following-sibling::*[1][@sort-order]"> <xsl:apply-templates select="following-sibling::*[1]" mode="group"> <xsl:with-param name="grtf"> <xsl:copy-of select="$grtf"/> <xsl:copy-of select="following-sibling::*[1]"/> </xsl:with-param> </xsl:apply-templates> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="exsl:node-set($grtf)/*"> <xsl:sort select="@sort-order" data-type="number"/> </xsl:apply-templates> <xsl:apply-templates select="following-sibling::*[1]" mode="group"> <xsl:with-param name="grtf"> <xsl:copy-of select="following-sibling::*[1]"/> </xsl:with-param> </xsl:apply-templates> </xsl:otherwise> </xsl:choose> </xsl:template>
<xsl:template match="group/*[not(@sort-order)]" mode="group"> <xsl:apply-templates select="."/> <xsl:apply-templates select="following-sibling::*[1]" mode="group"> <xsl:with-param name="grtf"> <xsl:copy-of select="following-sibling::*[1]"/> </xsl:with-param> </xsl:apply-templates> </xsl:template>
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] copying complete document, Marc Harding | Thread | Re: [xsl] copying complete document, Marc Harding |
Re: [xsl] copying complete document, Marc Harding | Date | Re: [xsl] copying complete document, Marc Harding |
Month |