I want to pass Map object as parameter in XSLT 2.0 version and i want to retrieve the Map object data under XSLT 2.0 file using Saxon-HE.
I googled a lot and found Retrieving hashmap values in XSLT
link which completely matches according to my need but i am getting exception such as
Static error in {map:get($mapData,'1')} in expression in xsl:variable/@select on line 23 column 94 of transformer.xslt: XPST0017: Cannot find a 2-argument function named {http://ns.saxonica.com/map}get().
I don't know where i am doing mistake.
These are the my files. SexsonDemo.java
public static void transform(String xmlFile, String xslFile) throws TransformerException,
TransformerConfigurationException {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(new StreamSource(new File(xslFile)));
Map<String,String> mapData = new HashMap<String,String>();
mapData.put("1", "188 E 6th Street");
transformer.setParameter("mapData", mapData);
transformer.transform(new StreamSource(new File(xmlFile)), new StreamResult(System.out));
}
transformer.xsl
xmlns:map="http://ns.saxonica.com/map" exclude-result-prefixes="map" >
<xsl:variable name="mapData"/>
<xsl:variable name="addressData" select="map:get($mapData,'1')"/>
at below line i getting exception
map:get($mapData,'1')

map(*)type and you can use saxonica.com/html/documentation9.8/javadoc/net/sf/saxon/s9api/… and saxonica.com/html/documentation9.8/javadoc/net/sf/saxon/s9api/… to construct an XSLT/XPath 3 map from a Java Map. - Martin Honnen