Re: [xsl] Merging 2 XML's in to 1 output XML (Performance Issue)

Subject: Re: [xsl] Merging 2 XML's in to 1 output XML (Performance Issue)
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 12 Oct 2005 16:15:42 +0100
> say for each record in InputXSL1 with Key match in InputXSL2 get 

The answer is (probably) in your description. You are repeatedly
traversing the other tree to find a st:VehicleTT with the same DFFileId
as the current node. xsl:key is designed to optimise such access 9often
by orders of magnitute).

<xsl:template match="//st:VehicleTT">

You don't want the // there (all it does is change the priority, nit the
nodes matched)

I think you just want
<xsl:stylesheet version="1.0">

<xsl:output method="xml" indent="yes" />

<xsl:variable name="aggregator" select="document('InputXML2.xml')" />

<xsl:template match="/">

<xsl:key name="v" match="st:VehicleTT" use="concat(xdd:DFFileId,':',xdd:RSNo)"/>

<xsl:template match="st:VehicleTT">
	    <xsl:copy-of select="*"/>
<xsl:variable name="key" select="concat(xdd:DFFileId,':',xdd:RSNo)"/>
<xsl:for-each select="$aggregator">
 <xsl:copy-of select="key('v',$key)/xdd:SName"/>

This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:

Current Thread