让我先开始下面这个问题,我问的可能是重复的问题,但我在一件事上被困住了。我已经尽力了,需要你们的建议,请指教。
如下所示,您可以看到我在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
则错误信息显示为
<xsl:value-of select="'EEROR'" />
与需求的另一个变化类似的情况是,如果$legReferenceVar=$InterestLegVar/@legIdentifier
不等于,则需要显示错误的选择。$legReferenceVar != $InterestLegVar/@legIdentifier
然后错误信息显示为
<xsl:value-of select="'EEROR'" />
请告知如何将这些变化纳入现有条件。
xsl:choose可以有多个xsl:when元素:
它由一系列xsl:when元素和可选元素组成xsl:否则元素。每个xsl:when元素只有一个属性,Test,它指定一个表达式。xsl:when和的内容否则elements是模板。当xsl:choose元素为处理后,每个xsl:when元素依次进行测试,由对表达式求值并将结果对象转换为布尔值,就像通过调用布尔函数一样。的内容第一个,且只有第一个,当test为true的元素是实例化。如果没有xsl:when为真,则xsl: else的内容元素被实例化。如果没有xsl:when element为真,则没有
如果元素存在,则不创建任何内容。
只需添加新的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>
只需添加<xsl:when>
子句,作为<xsl:choose>
的新子句:
<xsl:choose>
<xsl:when test="$legReferenceVar != $ReturnLegVar/@legIdentifier">
<xsl:text>ERROR</xsl:text>
</xsl:when>
...etc.