2014-04-11 97 views
0

我將參數傳遞給一個XSL模板,但它不存在顯示其值:獲取參數的值在XSL模板

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<information> 
    <person> 
     <name>John</name> 
    </person> 
    <person> 
     <name>Joseph</name> 
    </person> 
    <person> 
     <name>Ajay</name> 
    </person> 
</information> 

XSL:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/"> 
    <html> 
    <body> 

    <xsl:call-template name="show_name"> 
    <xsl:with-param name="element" select=" 'hie' "/> 
    </xsl:call-template> 

    </body> 
    </html> 
</xsl:template> 


<xsl:template name="show_name" match="/"> 
    <xsl:param name="element" /> 
    <xsl:for-each select="information/person"> 
    <p>Name: <xsl:value-of select="$element" /></p> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 

輸出:

Name: 
Name: 
Name: 

我在哪裏d錯了嗎?

回答

1

您有兩個模板匹配文檔節點"/"。這被認爲是在XSLT當平等優先兩個模板匹配同樣的事情的錯誤。什麼是可能發生的事情是,你的特定處理器實際上並沒有引發錯誤,但總是撿第二模板匹配「/」,所以不被使用的第一個模板。

你的第二個模板只需要作爲反正命名模板的功能,所以不是這樣

<xsl:template name="show_name" match="/"> 

做這個

<xsl:template name="show_name"> 
+0

謝謝...知道這個概念的:) – Aquarius24