如何在xslt中使用参数变量

时间:2010-06-15 22:11:01

标签: xml xslt

我是xslt的新手,所以请告诉我这里的语法有什么问题。如果我与常数值'880.50'进行比较,我会得到所需的结果。但是,如果我尝试使用参数传递相同的东西,我什么也得不到。代码段如下。

<xsl:template name="ShowJourneyLegs" >
  <xsl:param name="TotalFare" />  
    <Key4><xsl:value-of select='$TotalFare'/></Key4>   
    <JourneyLegKeys><xsl:value-of select="/FareSearchResponse/CompleteItineraryFares/AirFare[@Total = '880.50']/JourneyLegKeys/Key[1]"/></JourneyLegKeys>
     <JourneyLeg><xsl:value-of select="/FareSearchResponse/CompleteItineraryFares/AirFare[@Total = '$TotalFare']/JourneyLegKeys/Key[1]"/></JourneyLeg>  
</xsl:template>

2 个答案:

答案 0 :(得分:1)

从$ TotalFare周围删除撇号。最后一个XPath应如下所示:/FareSearchResponse/CompleteItineraryFares/AirFare[@Total = $TotalFare]/JourneyLegKeys/Key[1]

在XPath表达式中,您只对文字使用撇号。

答案 1 :(得分:0)

  

我是xslt的新手所以请告诉我   这里我的语法有什么不对。

问题在于此说明

<xsl:value-of select=
      "/FareSearchResponse/CompleteItineraryFares
                              /AirFare[@Total 
                                      = '$TotalFare']/JourneyLegKeys/Key[1]"/>

您不是要与$TotalFare的值进行比较,而是与字符串 '$TotalFare'进行比较。

解决方案:删除$TotalFare周围的撇号。