Как передать параметр в мою таблицу стилей xslt с помощью Saxon под Java? - PullRequest
2 голосов
/ 22 января 2012

Я использую Saxon 9 HE и в NetBeans 7.0.1 я получаю следующую ошибку при попытке отправить параметр в мою таблицу стилей:

enter image description here

Просто чтобы убедиться,, это хороший способ отправить параметр, чтобы я мог вернуть его с помощью

<xsl:param ... />?

Если так, как я могу его использовать?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 января 2012

См. S9APIExamples.java :

String[] fruit = {"apple", "banana", "cherry"};
QName paramName = new QName("in");
for (String s: fruit) {
    StringWriter sw = new StringWriter();
    out.setOutputWriter(sw);
    t.setParameter(paramName, new XdmAtomicValue(s));
    t.setDestination(out);
    t.transform();
    System.out.println(s + ": " + sw.toString());
}
1 голос
/ 22 января 2012

Из сообщения кажется вполне очевидным, что вам нужно передать net.sf.saxon.s9api.Qname в качестве первого аргумента (а не только строку "myVar").

И второй аргумент должен быть построен как net.sf.saxon.s9api.XdmValue.

Просто чтобы убедиться, что это хороший способ отправить параметр, чтобы я мог вернуть его с помощью

<xsl:param ... />?

В ваших таблицах стилей XSLT (основной и любой модуль таблицы стилей, на который есть ссылка в директиве xsl:import или xsl:include) у вас должен быть глобальный (дочерний элемент xsl:stylesheet) xsl:param с тем же именем, что и строка, используемая для создания Qname, который вы передаете в качестве первого аргумента setParameter().

Когда метод setParameter() выполняется и затем вызывается преобразование, соответствующий глобальный xsl:param будет иметь значение, которое использовалось для построения XdmValue, переданного в качестве второго аргумента setParameter().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...