xsl-list
[Top] [All Lists]

RE: Passing a Map as parameter to XSLT.

2006-03-03 15:57:18

I want to pass a java.util.Map object to a XSLT as a parameter.

Why do you want to pass a java.util.Map, and if that's what you want to do,
why are you passing an org.w3c.dom.Document?

Currently the way I am doing is:
1. Creating an org.w3c.dom.Document object in the format
    <x:map>
    <entry key="..." value="..."/>
          ...
    </x:map>

2. I have defined a parameter in xslt
<xsl:param name="XSLTParameter" />


Now how do I access this map in the XSLT.

Your application has to tell the XSLT processor to use the document(1) as
the value of the parameter(2). The way you do this depends on your
processor. Look for a method called setParameter() or addParameter().

Then you access the parameter as $XSLTParameter.

 I am not able to access it.
I was trying to use the key function as follows:

<xsl:key name="xsltParameterMap" match="document('')/*/map/entry" 
use="@key"/>


A key might be useful to find an entry within your map, but it isn't going
to help you access the map. Once you've loaded the document you can define a
key as

 <xsl:key name="xsltParameterMap" match="/*/map/entry" use="@key"/>

(though match="entry" will work equally well)

and then access a value with

key('xsltParameterMap', $requiredValue)

having made sure that $XSLTParameter is the context node.

Michael Kay
http://www.saxonica.com/



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--