[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: document() path created from xml

Subject: Re: document() path created from xml
From: Jeroen Janssen <jeroen@xxxxxxxx>
Date: Tue, 04 Sep 2001 12:47:45 +0200
jeroen janssen
on 04-09-2001 12:34, Jeni Tennison at mail@xxxxxxxxxxxxxxxx wrote:

Sorry, I made a mistake with the xsl example I sent (apart from the fact
that it doesn't work :-) stupid me!!

My problem is that I want to take the id from one xml document and I want to
use that id to load another document, something like this:

<xsl:variable name="path">
    document('../data/institutions/institutions_country<xsl:value-of
select="country/@id"/>.xml')/institutions
</xsl:variable>

<xsl:apply-templates select="$path"/>

Except that this doesn't work..

By the way, you guys are a great help! Sorry I ask so many questions, but
I'm still learning and I find some stuff quite abstract and difficult to
comprehend, especially the xpath stuff.. but thanks to this list (and a
couple of books) I'm learning something new every day.



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


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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.