Re: [xsl] document tree fragments

Subject: Re: [xsl] document tree fragments
From: Joe Barwell <jbar@xxxxxxxx>
Date: Mon, 13 Oct 2008 01:12:04 +1300
David Carlisle wrote:
Is there a way to use my $thePath variable, instead of including the directory path inside the @filename attribute?

yes:


<docs path="jb">
	<doc filename="wine1.xml" />
	<doc filename="wine2.xml" />
	<doc filename="wine3.xml" />
	...
</docs>


<xsl:template match="docs"> <xsl:variable name="p" select="document(concat(@path,'/',doc[1]/@filename))"/> <xsl:variable name="z" select="document(doc/@filename,$p)"/> <xsl:for-each select="$z"> : <xsl:value-of select="."/> </xsl:for-each> </xsl:template>


puts all the document nodes in $z.

Hi David,


Thanks, a somewhat sneaky idea--I like it! The for-each is superfluous/breaks things, but the following works for me (NB, now moved to the top of my xsl stylesheet, rather than in a template match):

<xsl:variable name="thePath" select="document(concat(/docs/@path, '/',
/docs/doc[1]/@filename))" />
<xsl:variable name="theWines" select="document(/docs/doc/@filename,
$thePath)" />

Cheers!

Joe

Current Thread