[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Keys off of variable xml source
Subject: Re: [xsl] Keys off of variable xml source
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 31 Mar 2005 18:27:53 -0500
|
Karl,
At 06:17 PM 3/31/2005, you wrote:
Is it legal to create a key off of an xml source stored as a variable?
So the key decleration might look like:
<xsl:key name="myKey" match="$external_xml_source//data" use="some_element"/>
This isn't legal, but not for the reason you think. In XSLT 1.0, a match
pattern can't contain a variable reference.
If not, is there a workaround?
None is needed, really. If you declare the key normally
<xsl:key name="myKey" match="data" use="some_element"/>
and then be sure that when you call it, the context is inside
$external_xml_source, you'll be fine:
<xsl:variable name="var" select="[anything you need to capture context]"/>
<xsl:for-each select="$external_xml_source">
... inside here the key will retrieve nodes from $external_xml_source,
and $var still refers to whatever you need from outside it ...
</xsl:for-each>
Your XSLT processor has enough information here to do the right thing --
and keys are specified to work this way.
This is a FAQ.
Cheers,
Wendell
======================================================================
Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
|