Как можно передать параметр XSL, обработанному Saxon-B?

Я использую Saxon-B 9.1.0.8 и XSL 2.0.

У меня есть таблица стилей XSL, в которой есть элемент xsl:param:

<xsl:param name="lang"/>

И я использую следующий код для преобразования моего документа:

try {
    Source xmlSource = new StreamSource(new File(xmlFilename));
    Source xsltSource = new StreamSource(new File(xslFilename));

    // create the transformer
    Processor processor = new Processor(false);
    XsltCompiler xsltCompiler = processor.newXsltCompiler();
    XsltExecutable xslt = xsltCompiler.compile(xsltSource);
    XsltTransformer xsltTransformer = xslt.load();
    xsltTransformer.setSource(xmlSource);

    // configure output
    StringWriter sw = new StringWriter();
    Serializer serializer = new Serializer();
    serializer.setOutputWriter(sw);
    serializer.setOutputProperty(Serializer.Property.INDENT, "yes");
    xsltTransformer.setDestination(serializer);

    // do it!
    xsltTransformer.transform();
} catch (SaxonApiException e) {
    logger.error(e.getMessage(), e);
}

Как передать значение этого параметра преобразователю?


person beerbajay    schedule 02.03.2012    source источник


Ответы (1)


Saxon использует классы QName и XdmAtomicValue для передачи параметров:

QName langParam = new QName("lang");
xsltTransformer.setParameter(langParam, new XdmAtomicValue("default"));
person beerbajay    schedule 02.03.2012