Hi,
Assuming you have the key set up correctly you can simply match the 'image' tag
from you source XML (example source would help). The source XML's image tag has
the unique ID. For example:
<xsl:template match="image">
<xsl:for-each select="$infodoc">
<xsl:message>info2=<xsl:value-of select="$path-key"/></xsl:message>
<xsl:message>info3=<xsl:value-of select="key('imgInfoKey',
$path-key)/@width"/></xsl:message>
<xsl:message>info4=<xsl:value-of select="key('imgInfoKey',
$path-key)/@height"/></xsl:message>
</xsl:for-each>
</xsl:template>
I try to avoid extensions. Do you really need them? If you can do without, then
you need to get into the context of the document you need information from. Then
use the key to find the nodeset and get the value you want from there. You
cannot store the value of this nodeset in a variable. You need to use the key
each time.
Does this help?
best,
-Rob
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of
Aaron
Optimizer Digulla
Sent: Sunday, September 08, 2002 9:26 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Can't get id() and key() to work
Hello,
What I basically need is:
<xsl:variable name="infodoc" select="document('infodoc.xml')"/>
<xsl:variable name="info" select="$infodoc/id($key)"/>
ie. I have an XML document in $infodoc which has IDs and I want to
lookup elements in $infodoc.
I tried to use key() and it actually works but I can't use the
result:
<xsl:variable name="info-fragment">
<xsl:for-each select="$imginfo">
<xsl:copy-of select="key('imgInfoKey', $path-key)"/>
</xsl:for-each>
</xsl:variable>
<xsl:message>info2=<xsl:value-of select="$path-key"/></xsl:message>
<xsl:message>info3a=<xsl:value-of
select="exslt:object-type($info-fragment)"/></xsl:message>
<xsl:message>info3b=<xsl:value-of
select="count($info-fragment)"/></xsl:message>
<xsl:variable name="info" select="exslt:node-set($info-fragment)"/>
<xsl:message>info4=<xsl:value-of select="$info/@width"/></xsl:message>
<xsl:message>info4b=<xsl:value-of
select="exslt:node-set($info-fragment)/@width"/></xsl:message>
This gives:
info2=images/uy-online-left.jpg
info3a=RTF
info3b=1
info4=
info4b=
so apparently there is something in $info-fragment but what?
--
==============================================
Sowatec AG, CH-8330 Pfäffikon (ZH)
Witzbergstr. 7, http://www.sowatec.com
Tel: +41-(0)1-952 55 55
Fax: +41-(0)1-952 55 66
----------------------------------------------
Aaron "Optimizer" Digulla, digulla(_at_)sowatec(_dot_)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