Subject: Re: [xsl] document() path created from xml From: Jeroen Janssen <jeroen@xxxxxxxx> Date: Tue, 04 Sep 2001 12:47:45 +0200 |
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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] document() path created f, Jeni Tennison | Thread | Re: [xsl] document() path created f, Swen Thuemmler |
Re: [xsl] document() path created f, Jeni Tennison | Date | Re: [xsl] document() path created f, Swen Thuemmler |
Month |