xsl-list
[Top] [All Lists]

RE: Using keys to lookup from current stylesheet

2003-11-07 15:02:21
This works for me. If I add the template rule

    <xsl:template match="/">
      <xsl:call-template name="AcronymnStandsFor">
        <xsl:with-param name="acronym" select="'Ant'"/>
      </xsl:call-template>
    </xsl:template>

and run it under Saxon 6.5.3, with any source document, it produces

<?xml version="1.0" encoding="utf-8"?>Another Neat Tool

Michael Kay

-----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 
Justin Makeig
Sent: 07 November 2003 21:36
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Using keys to lookup from current stylesheet


I'm trying to use a key to lookup elements in the current 
stylesheet. The AcronymnStandsFor is called from another 
stylesheet that imports the one shown below to populate the 
@title attribute of xhtml:acronym elements. I've used Michael 
Kay's advice from his book and used the for-each 
select="document('')" to switch the context to the current 
(stylesheet) document. However, the key doesn't seem to find 
anything. I've tested that the values that are coming in in 
the $acronym parameter are correct. Can anybody spot what the 
problem might be? Thanks.

- Justin

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:a="http://cde.berkeley.edu/docbook/constant/acronym";
    exclude-result-prefixes="a">
    
    <xsl:key name="AcronymKey" match="a:acronymItem" use="a:acronym"/>
    
    <xsl:template name="AcronymnStandsFor">
        <xsl:param name="acronym"/>
        <!-- change context to current document so the key 
will work -->
        <xsl:for-each select="document('')">
            <xsl:value-of 
select="key('AcronymKey',$acronym)/a:standsFor"/>
        </xsl:for-each>
    </xsl:template>
    
    <!-- acronym lookups -->
    <a:acronymList>
        <a:acronymItem>
            <a:acronym>Ant</a:acronym>
            <a:standsFor>Another Neat Tool</a:standsFor>
        </a:acronymItem>
        ...
    </a:acronymList>
</xsl:stylesheet>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>