如何在XSLT中为个人银行账户查询逻辑实现choose语句?
实现XSLT的条件判断逻辑
没问题,我来帮你搞定这个需求!你只需要把现有的账户循环逻辑包裹在<xsl:choose>结构里,先判断是否存在匹配的银行账户节点就行。
修改后的完整代码如下:
<!-- Keys --> <xsl:key match="bankaccount" use="account_id" name="keytobankaccount"/> <xsl:key match="bankcard" use="card_id" name="keytocard"/> <!-- 判断是否有匹配的银行账户 --> <xsl:choose> <!-- 找到匹配账户时,输出账户及银行卡信息 --> <xsl:when test="key('keytobankaccount', id)"> <xsl:for-each select="key('keytobankaccount', id)"> <ul> <li> <p> IBAN: <xsl:value-of select="iban"/> </p> <p> Account balance: <xsl:value-of select="balance"/> </p> <!-- 关联银行卡信息 --> <xsl:for-each select="key('keytocard', bank_id)"> <p> Card Nr.: <xsl:value-of select="card_nr"/> </p> <p> Card: <xsl:value-of select="card_type"/> </p> </xsl:for-each> </li> </ul> </xsl:for-each> </xsl:when> <!-- 没有找到匹配账户时,输出提示文本 --> <xsl:otherwise> <p>No account found!</p> </xsl:otherwise> </xsl:choose>
简单说明下逻辑:
<xsl:when test="key('keytobankaccount', id)">:这里的test条件会检查key函数是否返回了至少一个节点——如果存在匹配的账户,就执行这个分支里的循环输出逻辑。<xsl:otherwise>:当test条件不成立(也就是完全找不到对应账户)时,就会执行这个分支,输出你要的提示文本。
这样就完全符合你的需求啦~
内容的提问来源于stack exchange,提问作者codenoob
相关产品推荐
相关产品推荐

