2009-11-03 50 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