XSL:任何元素的值都是n

时间:2010-06-04 14:46:06

标签: xml xslt

我有一个类似于:

的XML元素
<account year="2010">
    <paymentDue>
        <amount>0</amount>
    </paymentDue>
    <paymentDue>
        <amount>752.00</amount>
    </paymentDue>
</account>

我正在显示按年份分组的帐户,而我正在使用<xsl:choose>方法说明金额&gt; 0,显示一个make支付链接。但是,我只能通过付款实现这一目标。如果任何付款到期金额大于0,我想显示年度的付款链接。

如何实现这一点的任何意见将不胜感激。

2 个答案:

答案 0 :(得分:3)

喜欢这个吗?

<xsl:template match="account">
  <xsl:if test="paymentDue[number(amount) &gt; 0]">
    <!-- display payment link -->
  </xsl:if>
</xsl:template>

XPath表达式paymentDue[number(amount) &gt; 0]选择<paymentDue>大于0的任何<amount>节点。<xsl:if>测试成功时会导致非空节点集(即当至少有一个节点满足条件时。)

答案 1 :(得分:1)

试试这个:

account[paymentDue/amount[text() > 0]]

即,“获取至少有一个支付节点的所有帐户节点,该节点至少有一个金额节点,其中文本大于0”。

不会捕获错误,比如输入非数字值,但这只是一个开始。