This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: merging generic elements in a parent-child relationship


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]