[英]Getting value of parameter in xsl template
我正在將參數傳遞給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:
我在哪里做錯了?
您有兩個與文檔節點"/"
相匹配的模板。 當兩個具有相等優先級的模板匹配同一事物時,這被視為XSLT中的錯誤。 可能發生的情況是,您的特定處理器實際上並沒有引發錯誤,而是始終選擇第二個模板以匹配“ /”,因此未使用第一個模板。
無論如何,您的第二個模板僅需要充當命名模板,因此無需這樣做
<xsl:template name="show_name" match="/">
做這個
<xsl:template name="show_name">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.