簡體   English   中英

在xsl模板中獲取參數的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM