It seems to me that your description matches completely the guess I made in
my previous message.
If you do value your time it would be best to publish a complete (but the
minimal possible) example, including the xslt code, the source xml document
and where you think the problem happens.
From what you have written:
3. From this template, I am again calling child templates using
<xsl:apply-templates>
<xsl:with-param name="labelsfile" select="$labelsfile"/>
</xsl:apply-templates>
4. Next Default template prints the node values for some of the xml
tags.
5. Next when a template node is matched (third),the third template is
being executed, I have declared the param tag
<xsl:param name="labelsfile"/>
Problem comes only here.. here, the variable "labelsfile" is shown as a
String rather than a Nodelist. and its value is blank.
and when the tag <xsl:for-each select="$labelsfile"> is being executed, it
shows error.
it seems that the "third template" is instantiated from a "default"
template. If this is so, the default template does not use an
"xsl:with-param" when it issues "xsl:apply-templates". If this is so, no
value for any parameter is passed to the "third template" and the xsl:param
named labelsfile does not get any value -- this causes the error message.
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list