Как использовать переменную параметра в xslt - PullRequest
1 голос
/ 16 июня 2010

Я новичок в 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 ]

1 голос
/ 16 июня 2010

Удалите апострофы из $ TotalFare.Последний XPath должен выглядеть следующим образом: /FareSearchResponse/CompleteItineraryFares/AirFare[@Total = $TotalFare]/JourneyLegKeys/Key[1]

Внутри выражения XPath вы используете апострофы только для литералов.

0 голосов
/ 16 июня 2010

Я новичок в xslt, поэтому, пожалуйста, дайте мне знать что не так с моим синтаксисом здесь.

Проблема в этой инструкции :

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

Вы сравниваете не значение $TotalFare, а строку '$TotalFare'.

Решение : Удалить окружающие апострофы $TotalFare.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...