xsl-list
[Top] [All Lists]

Re: Recursive substitution

2005-11-04 13:54:09
Anupam,

At 02:55 PM 11/4/2005, you wrote:
<xsl:template match="ref[(_at_)name]">
        <xsl:variable name="x">
            <xsl:copy-of select="//define[(_at_)name=current()/@name]/*"/>
        </xsl:variable>
        <xsl:apply-templates select="$x"/>
</xsl:template>

When you say this you are asking the processor to build a temporary tree containing copies of the 'define' elements you want, and then traverse them matching with templates.

But the temporary tree you have created does not include any 'define' elements for references that appear inside it (unless there happen to be circular references, in which case you're in trouble anyway).

Accordingly, the processor does not find those nodes to process and does not process them.

Solve your problem by creating a copy and processing it, but by continuing to apply templates to nodes in the original tree:

<xsl:template match="ref[(_at_)name]">
  <xsl:apply-templates select="//define[(_at_)name=current()/@name]/*"/>
</xsl:template>

And watch out for those endless loops!

Good luck,
Wendell


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


--~------------------------------------------------------------------
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>
--~--