[xsl] Re: Can not convert #STRING to a NodeList! Error..

Subject: [xsl] Re: Can not convert #STRING to a NodeList! Error..
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Sat, 8 Nov 2003 21:06:29 +0100
As Michael pointed out, this can only be a dynamic error.

This may happen if the parrameter is passet with xsl:apply-templates and
some other template (which knows nothing about the parameter or is not
passing it through) is instantiated. As result when the template that needs
the parameter is instantiated it is not passed any parameter.

A complete example is the following:

source.xml:
------------
<a>
  <b>
    <c/>
  </b>
</a>

stylesheet:
-----------
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <xsl:template match="a">
    <xsl:apply-templates>
      <xsl:with-param name="labelsfile" select="document('')"/>
    </xsl:apply-templates>
   </xsl:template>

  <xsl:template match="c">
    <xsl:param name="labelsfile"/>

    <xsl:value-of select="count($labelsfile)"/>

    <xsl:for-each select="$labelsfile/*/*">
      <xsl:copy-of select="."/>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

In this case the *dynamically* raised error message with Saxon 6.5.3 is:

"Error at xsl:value-of on line 14 of file:/(Untitled):
  The value is not a node-set"


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL


"arun prasath" <arunwaits@xxxxxxxxxxx> wrote in message
news:BAY2-F124pwACkWHZqY00003637@xxxxxxxxxxxxxx
> Hi,
> In my XSL,
> from the parent template I load a XML file using document() function. and
I
> pass this as parameter to child templates.
> <xsl:call-template name="main">
>    <xsl:with-param name="labelsfile" select="document('English.xml')"/>
> </xsl:call-template>
>
> In my child templates, I am retrieving using
>     <xsl:param name="labelsfile"/>
>
> I also have declared a key(xsl:key) in the importing xml file in my xsl.
>     <xsl:for-each select="$labelsfile">
>         <xsl:value-of select="key('label','ecollab.businessfollowedby')"
/>
>     </xsl:for-each>
>
> when I transform this using my java program, I get the following
exception.
> Can not convert #STRING to a NodeList!
>
> I want to know why we get this error usually.
> please help
> regards
> s.arun prasath
>
> _________________________________________________________________
> Make fun prints Click here to order. http://www.kodakexpress.co.in
Delivery
> anywhere in India.
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread