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="/"> <st:VehicleTDoc> <xsl:apply-templates/> </st:VehicleTDoc> </xsl:template> <xsl:key name="v" match="st:VehicleTT" use="concat(xdd:DFFileId,':',xdd:RSNo)"/> <xsl:template match="st:VehicleTT"> <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"/> </xsl:for-each </xsl:template> </xsl:stylesheet> ________________________________________________________________________ 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: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Merging 2 XML's in to 1 o, Michael Kay | Thread | [xsl] Opinions, please. Keep entire, Mulberry Technologie |
RE: [xsl] Merging 2 XML's in to 1 o, Michael Kay | Date | RE: [xsl] Removing attributes in a , Michael Kay |
Month |