Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何在xslt中使用参数变量_Xml_Xslt - Fatal编程技术网

Xml 如何在xslt中使用参数变量

Xml 如何在xslt中使用参数变量,xml,xslt,Xml,Xslt,我是xslt新手,所以请让我知道我的语法有什么问题。如果我与“880.50”的常量值进行比较,我会得到所需的结果。但是,如果我尝试在传递参数的情况下执行相同的操作,我将一无所获。代码片段如下所示 <xsl:template name="ShowJourneyLegs" > <xsl:param name="TotalFare" /> <Key4><xsl:value-of select='$TotalFare'/></Key4

我是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>

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


在XPath表达式内部,只能对文本使用撇号。

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

在XPath表达式内部,只对文字使用撇号

我是xslt新手,请让我知道 我的语法有什么问题吗

问题出在本说明中

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

您不是在比较
$TotalFare
的值,而是在比较字符串
“$TotalFare”

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

我是xslt新手,请让我知道 我的语法有什么问题吗

问题出在本说明中

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

您不是在比较
$TotalFare
的值,而是在比较字符串
“$TotalFare”


解决方案:删除围绕
$TotalFare

的撇号。您需要通过将代码缩进4个空格来格式化代码,否则代码将无法正确显示。好问题(+1)。有关问题的解释和解决方案,请参见我的答案。:)您需要通过将代码缩进4个空格来格式化代码,否则它将无法正确显示。好问题(+1)。有关问题的解释和解决方案,请参见我的答案。:)