Subject: Re: [xsl] Recursive substitution From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 1 Nov 2005 22:36:50 GMT |
I see you're using 2.0, it's best to say explictly if you want a 2.0 answer as the current version is still 1.0 (2.0 is still in draft) I don't think you need to keep copying nodes and build copies of the tree, you want to recursively walk over the existing tree not copy branches of it: <x> <define name="DEF1"> <reg name="REG1"/> </define> <define name="DEF2"> <reg name="REG2"/> <ref name="DEF1"/> </define> <block name="block1"> <reg name="REG3"/> <ref name="DEF2"/> </block> </x> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="r" match="define" use="@name"/> <xsl:template match="x"> <xsl:apply-templates select="block"/> </xsl:template> <xsl:template match="reg"> Register: <xsl:value-of select="@name"/> </xsl:template> <xsl:template match="ref"> <xsl:apply-templates select="key('r',@name)"/> </xsl:template> </xsl:stylesheet> $ saxon8 ref.xml ref.xsl <?xml version="1.0" encoding="UTF-8"?> Register: REG3 Register: REG2 Register: REG1 ________________________________________________________________________ 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 -> |
---|---|---|
[xsl] Recursive substitution, Agnisys | Thread | Re: [xsl] Recursive substitution, Agnisys |
Re: [xsl] Processing IDREFS attribu, Dan Vint | Date | Re: [xsl] Processing IDREFS attribu, Dan Vint |
Month |