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