This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: merging generic elements in a parent-child relationship
- From: David Carlisle <davidc at nag dot co dot uk>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Tue, 25 Jun 2002 23:14:12 +0100
- Subject: Re: [xsl] merging generic elements in a parent-child relationship
- References: <BBEJKGIELKMFIMGJKDMNIECIEHAA.woloski@sion.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
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