|
Subject: Re: [xsl] Merge Two Files From: David Carlisle <davidc@xxxxxxxxx> Date: Fri, 3 Jul 2009 16:04:26 +0100 |
see the other thread today. This is a classic example of where one would
start with an identity template.
Although here rather than having an identity template and then adding
other templates i just modified the template as in this simple case,
only one is needed.
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" >
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
<xsl:variable name="id" select="@id"/>
<xsl:for-each select="document('mf2.xml')">
<xsl:copy-of select="key('n',$id)"/>
</xsl:for-each>
</xsl:template>
<xsl:key name="n" match="note" use="@id"/>
</xsl:stylesheet>
the need to use a variable and for-each is just to get round limitations
of key() in xslt1, in xslt 2 you could use
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0" >
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
<xsl:copy-of select="key('n',@id,doc('mf2.xml'))"/>
</xsl:template>
<xsl:key name="n" match="note" use="@id"/>
</xsl:stylesheet>
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Merge Two Files, Martin Honnen | Thread | [xsl] Is it possible to rewrite par, Jonas Voss |
| Re: [xsl] Merge Two Files, Martin Honnen | Date | Re: [xsl] returning nodes which hav, Mukul Gandhi |
| Month |