带参数的Java中的XSL转换

Ani*_*udh 22 java xslt

我有一个xsl文件,我需要使用外部源的参数.我正在使用Java,我的代码看起来像这样:

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource);
xsltTransformer.setParameter(parameterName, parameterValue);
Run Code Online (Sandbox Code Playgroud)

但是,在第2行抛出异常 - 变量或参数'variable_name'未定义.我意识到XSL是编译的,并且可能在创建变换器时编译.

那么,我如何将参数传递给我的转换?应该如何使用setParameter方法?

rsp*_*rsp 53

如果您传递的参数如下:

transformer.setParameter("render_id", "1234");
Run Code Online (Sandbox Code Playgroud)

参数可以通过变换获取:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>

<!-- Receives the id of the menu being rendered. -->
<xsl:param name="render_id" />
Run Code Online (Sandbox Code Playgroud)

  • Great Ans,FYI如果参数在xsl中有任何值,它将被忽略,由Java发送的那个将优先 (5认同)