2013-06-12 1 views
1

Позвольте мне начать сначала этот ниже вопрос, который я задаю, может быть reptetive один, но я застрял в одном. Я пробовал свои силы и вам нужно посоветовать вам, ребята, пожалуйста, посоветуйте.Включая определенные условия с существующим условием в xsl

Как ниже вы можете увидеть шаблон я определен в XSLT 1.0 и есть определенные условия, также, как показано ниже:

<xsl:template name="direction_emm_cashflowGDS"> 
    <xsl:param name="TradeHeaderVar" /> 
    <xsl:param name="ReturnSwapTradeVar" /> 
    <xsl:param name="ReturnLegVar" /> 
    <xsl:param name="InterestLegVar" /> 
    <xsl:param name="legReferenceVar" /> 
    <xsl:variable name="cdfPartyRef"> 
     <xsl:value-of select="$TradeHeaderVar/bookingEntityPerspective" /> 
    </xsl:variable> 

<xsl:choose> 
     <xsl:when 
      test="($legReferenceVar=$ReturnLegVar/@legIdentifier and 
        $cdfPartyRef=$ReturnLegVar/payerPartyReference) 
        or 
        ($legReferenceVar=$InterestLegVar/@legIdentifier and 
        $cdfPartyRef=$InterestLegVar/payerPartyReference)"> 
      <xsl:value-of select="'Pay'" /> 
     </xsl:when> 
     <xsl:otherwise> 
      <xsl:value-of select="'Receive'" /> 
     </xsl:otherwise> 
    </xsl:choose> 
</xsl:template>  

Теперь, как я организовал определенные условия в xsl:when в зависимости от указанного требования и теперь есть небольшое изменение в требовании.

То есть скажет:

если $legReferenceVar=$ReturnLegVar/@legIdentifier не равен, то в этом случае выберите из ошибки должна быть отображено.

Другими словами, если $legReferenceVar != $ReturnLegVar/@legIdentifier то сообщение об ошибке будет diasplayed в

<xsl:value-of select="'EEROR'" /> 

похож случай с другим изменением требования заключается в том, что если $legReferenceVar=$InterestLegVar/@legIdentifier не равны, то избранная ошибки должно быть экран отображается. $legReferenceVar != $InterestLegVar/@legIdentifier то сообщение об ошибке будет diasplayed в

<xsl:value-of select="'EEROR'" /> 

Пожалуйста, посоветуйте, как включить эти изменения в существующих условиях.

ответ

1

xsl:choose может иметь несколько xsl:when элементов:

Он состоит из последовательности xsl:when элементов с последующей необязательным элементом xsl:otherwise. Каждый элемент xsl:when имеет один атрибут, test, который указывает выражение. Содержание элементов xsl: when и xsl:otherwise - это шаблон. Когда обработанный элемент xsl:choose обрабатывается , каждый из элементов xsl:when проверяется по очереди на , оценивая выражение и преобразовывая полученный объект в логическое значение , как если бы это вызвало вызов булевой функции. Сначала содержимое , и только первый элемент xsl: when, критерий которого равен true, - это созданный экземпляр . Если xsl: when is true, создается содержимое элемента xsl: иначе . Если нет элемента xsl:when, и нет элемента xsl:otherwise, ничего не создается.

Просто добавить новый ERROR состояние как еще xsl:when критериев:

<xsl:template name="direction_emm_cashflowGDS"> 
    <xsl:param name="TradeHeaderVar" /> 
    <xsl:param name="ReturnSwapTradeVar" /> 
    <xsl:param name="ReturnLegVar" /> 
    <xsl:param name="InterestLegVar" /> 
    <xsl:param name="legReferenceVar" /> 
    <xsl:variable name="cdfPartyRef"> 
     <xsl:value-of select="$TradeHeaderVar/bookingEntityPerspective" /> 
    </xsl:variable> 

    <xsl:choose> 
     <xsl:when test="$legReferenceVar != $ReturnLegVar/@legIdentifier 
         or $legReferenceVar != $InterestLegVar/@legIdentifier"> 
      <xsl:value-of select="'ERROR'"/> 
     </xsl:when> 
     <xsl:when 
      test="($legReferenceVar=$ReturnLegVar/@legIdentifier 
        and $cdfPartyRef=$ReturnLegVar/payerPartyReference) 
       or 
        ($legReferenceVar=$InterestLegVar/@legIdentifier 
        and $cdfPartyRef=$InterestLegVar/payerPartyReference)"> 
      <xsl:value-of select="'Pay'" /> 
     </xsl:when> 
     <xsl:otherwise> 
      <xsl:value-of select="'Receive'" /> 
     </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 
+0

благодарит много, но он печатает ошибку для каждого, что не должно быть потоком ..! – user2352134

+0

Просто добавлено условие окончания, это работает благодаря большому – user2352134

1

Просто добавьте пункт <xsl:when> с новым условием, в качестве нового ребенка <xsl:choose>:

<xsl:choose> 
    <xsl:when test="$legReferenceVar != $ReturnLegVar/@legIdentifier"> 
     <xsl:text>ERROR</xsl:text> 
    </xsl:when> 
    ...etc. 
+0

Если бы я понял, что вы просили, пожалуйста, дайте мне знать. – LarsH

Смежные вопросы