Hello:
I have this XSLT that takes about 2 secs on IE but on FF takes 20
secs!!! and others that take up to 5 times more in FF than IE.
Digging a little i think the cause for the 2/20 diference lies on a
recursive template my xslt is calling.
Anyone had this experince before? Anybody has some advice or help?
Heres some code, in the context of a identity transform:
<xsl:when test="SOME TEST">
<xsl:call-template name="replace"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:otherwise>
and later on,
<xsl:template match="Menu" mode="replace" name="replace">
<xsl:choose>
<xsl:when test=" Type='REP' and Visual='NODE' ">
<xsl:variable name="xmldoc"
select="I'M GETTING SOME DATA FROM ANOTHER DOC"/>
<xsl:if test="count($xmldoc|current())!=1">
<xsl:apply-templates
select="$xmldoc" mode="replace"/>
</xsl:if>
<xsl:if test="count($xmldoc|current())=1">
<xsl:copy>
<Caption>WARNING:
Infinite loop on <xsl:value-of select="Name"/></Caption>
<xsl:apply-templates
select="@*|node()[not(self::Caption)]"/>
</xsl:copy>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
so in english, when i found a specific node in my tree, and it's of
Type=REP, i go look at another document for nodes based on some of
it's data, and for the nodes returned, if they are REP's i want to
repeat the process, and so on and so on...
I have a escape code for situations where the returned code is itself,
so it never goes on a loop.
I've checked in the case of the 2/20 diference situation, i only
recurse once, giving a result from document() of 9 nodes, none of wich
is a REP, so it won't recurse again.
And i know it's because of recursion because if i change the "replace"
mode to a "normal" mode (that simply copies the nodes) both browsers
take aprox. the same time to do it.
I'm completly lost in here, someone can help?
Thanks a lot.
P.S. Someone knows where are the <xsl:message>'s go in IE?
--~------------------------------------------------------------------
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>
--~--