我有一个xsl文件,我需要使用外部源的参数。我正在使用Java,我的代码看起来像这样:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource);
xsltTransformer.setParameter(parameterName, parameterValue);
但是,第二行会抛出异常 - 变量或参数'variable_name'未定义。我意识到XSL已编译,可能在创建变换器时被编译。
那么,我如何将参数传递给我的转换?如何使用setParameter方法?
答案 0 :(得分:50)
如果您传递的参数如下:
transformer.setParameter("render_id", "1234");
参数可以通过变换来获取:
<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" />
答案 1 :(得分:2)
rsp的回答很明显。谢谢。 只是想补充一点,你不能以同样的方式将参数传递给变量(我通过Java的TransformerFactory设置参数)。
我犯了错误,认为变量和参数是可以互换的:)