2009-11-03 57 views
17

我有一个xsl文件,我需要使用来自外部来源的参数。我使用Java和我的代码看起来是这样的:XSL转换在Java参数

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource); 
xsltTransformer.setParameter(parameterName, parameterValue); 

然而,一个例外是在第二行抛出 - 变量或参数“变量名”是不确定的。我意识到编译XSL并且可能在创建变换器时编译。

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

+0

仔细检查,以确保您的拼写正确参数名称和大小写匹配什么是在XSLT声明。 – 2009-11-03 14:51:40

回答

43

如果您传递参数,如:

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" /> 
+3

好的回答,仅供参考如果参数在xsl中有任何值,它将被忽略,并且由Java发送的优先级为 – SoulMan 2012-07-05 09:32:21

2

RSP的答案是当场上。谢谢。 只是想补充一点,你不能以同样的方式将参数传递给变量(我正在通过Java的TransformerFactory设置参数)。

我的以为变量,而params的错误是可以互换的:)

+1

下面是有关'param'和'variable'之间差异的一个很好的答案:http://stackoverflow.com /一个/1813669分之11854157 – Scadge 2015-11-11 13:41:24