Re: [xsl] merging generic elements in a parent-child relationship

Subject: Re: [xsl] merging generic elements in a parent-child relationship
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 25 Jun 2002 23:14:12 +0100
This may be too generic, it doesn't hard code any element names 
but it doesn't use a parameter to limit them either, if you need to
paramaterise it you may need to replace * by *[contains($param,name()]
or some such, but this produces teh specified output on teh test file

David

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:output indent="yes"/>

<xsl:key name="idx" match="*" use="@*[starts-with(name(.),'id') and
(name() != 'id')]"/>

<xsl:template match="root">
<root>
 <xsl:apply-templates select="*[not(@*[starts-with(name(.),'id') and
(name() != 'id')])]"/>
</root>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="key('idx',@id)"/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread