2012-08-03 115 views
1

這裏是我的Java代碼,相關參數:XSLT參數不起作用

transformer.setParameter("limad","1234"); 
    transformer.transform(text, new StreamResult(response.getOutputStream())); 

我的XSLT有:

<xsl:template match="/"> 
    <xsl:param name="limad"/> 
    .... lots of stuff here... 
           <td> 
            <xsl:value-of select="$limad"/> 
           </td> 
    .... lots of stuff here... 
</xsl:template> 

我的結果是: < TD> </TD>

有沒有想法?我怎樣才能調試呢?

回答

3

我不是用java專家,但如果你想將參數傳遞到XSLT,你需要把它們放在外面的模板匹配=「/」

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> 


<!-- Imports --> 
<xsl:import href="test.xslt"/> 

<xsl:output method="html" 
        doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
        indent="yes" standalone="yes"/> 

<!-- Parameters--> 
<xsl:param name="limad"/> 

<!-- Templates Match--> 
<xsl:template match="/"> 
    .... lots of stuff here... 
           <td> 
            <xsl:value-of select="$limad"/> 
           </td> 
    .... lots of stuff here... 
</xsl:template> 
</xsl:stylesheet> 
+3

正確答案。從調用應用程序傳遞的參數總是匹配全局xsl:param聲明,而不是模板中的本地參數。 – 2012-08-03 22:47:56