[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Recursive substitution
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 ________________________________________________________________________
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|