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


on 04-09-2001 12:34, Jeni Tennison at mail@jenitennison.com 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


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