xsl-list
[Top] [All Lists]

Re: [xsl] Merge Two Files

2009-07-03 11:04:56

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. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>