Я хочу передать объект карты в качестве параметра в версии XSLT 2.0 и хочу получить данные объекта карты в файле XSLT 2.0 с помощью Saxon-HE.
Я много гуглил и нашел Получение хэш-картызначения в ссылке XSLT
, которые полностью соответствуют моим потребностям, но я получаю исключение, например
Статическая ошибка в {map: get ($ mapData, '1'))} в выражении в xsl: variable / @ select в строке 23 столбца 94 файла transformer.xslt: XPST0017: Не удается найти функцию с двумя аргументами с именем {http://ns.saxonica.com/map}get().
Я не знаю, гдея делаю ошибку.
Это мои файлы.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')"/>
в нижней строке я получаю исключение map:get($mapData,'1')