|
Subject: Re: [xsl] Re: document() From: "Jonathan Perret" <jonathan@xxxxxxxxxxxx> Date: Wed, 13 Feb 2002 15:32:36 +0100 |
Stuart,
If you need to access the input document when the context is inside
another document, there is a simpler way through the use of a variable :
<xsl:transform [blah blah]>
<xsl:variable name="root" select="/" />
<xsl:template match="foo">
<xsl:for-each select="document('someOtherDoc.xml')>
<!-- We move the context into some other doc -->
<xsl:for-each select="$root">
<!-- And here we are back in the original (whatever it is) -->
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:transform>
Simpler and almost certainly faster (the input document does not have
to be parsed twice). And you don't need to pass an external parameter.
Cheers,
--Jonathan
----- Original Message -----
From: "Stuart Brown" <stuart.brown@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
> It might not be the most sophisticated solution, but I define a global
parameter
> docURI, use references to this, and pass the value to the processor at the
> command line, thus:
>
> <xsl:transform [blah blah]>
> <xsl:param name="docURI">index.xml</xsl:param><!-- My default -->
> <xsl:template match="foo">
> <xsl:for-each select="document('someOtherDoc.xml')>
> <!-- We move the context into some other doc -->
> <xsl:for-each select="document($docURI)">
> <!-- And here we are back in the original (whatever it is) -->
> </xsl:for-each>
> </xsl:for-each>
> </xsl:template>
> </xsl:transform>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Re: document(), Stuart Brown | Thread | RE: [xsl] match on attribute anywhe, Jeff Beadle |
| [xsl] CrossPost: Anybody using eCX, thomas | Date | [xsl] xsl-fo question, Bryan Rasmussen |
| Month |