Re: [xsl] document() path created from xml

Subject: Re: [xsl] document() path created from xml
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Tue, 4 Sep 2001 11:34:59 +0100
Hi Jeroen,

> I'm trying to load an xml document with document(), every file has
> an id and I need to take this id from the originaly loaded xml, I
> tried this with a variable but I can't get it to work, this one of
> the xsls I tried:
> <xsl:variable name="path">
>    document('../data/institutions/institutions_country0.xml')/institutions
> </xsl:variable>
> <xsl:apply-templates select="$path"/>

When you set a variable using its content, then you create a result
tree fragment; in this case, you create a result tree fragment with a
single text node whose value is

Instead, you want to evaluate the XPath, to make the $path variable
hold the resulting institutions element (I think). To do that, use the
select attribute on xsl:variable, rather than its content, to set the

  <xsl:variable name="path"
              /institutions" />

> A related question; is there any way of seeing what the result of an
> expression is? I know I'm doing something wrong but "Reference to
> variable or parameter 'path' must evaluate to a node list" is a bit
> vague, I would like to see what's actually happening...

I find it helpful to send debugging messages with xsl:message and use
xsl:copy-of to show the value of variables. For example:

    $path: <xsl:copy-of select="$path" />

Where you see the messages depends on the way you're using the

I hope that helps,


Jeni Tennison

 XSL-List info and archive:

Current Thread