This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: document() path created from xml


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
"document('../data/institutions/institutions_country0.xml')/institutions".

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
variable:

  <xsl:variable name="path"
    select="document('../data/institutions/institutions_country0.xml')
              /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:

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

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

I hope that helps,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]