如何根据xslt中的条件计算循环中的节点数

时间:2014-12-08 08:10:16

标签: xml xslt xpath xslt-1.0

您好,在下面的xml格式中我想得到 F_ba 节点的数量,其中 F_ba 日期节点小于当前日期的18个月。我有一个函数来获取日期差异,我只想获得满足条件的节点数

    <Root>
    <S_fin>
    <FS_ba>
      <F_ba>2013-10-29</F_ba>
      <F_BD desc="Fiscal">001</F_BD>
      <F_BF desc="Thousands">001</F_BF>
      <F_BG desc="Indian Rupee">9</F_BG>
    </FS_ba>
  </S_fin>
  <S_fin>
    <FS_ba>
      <F_ba>2012-10-29</F_ba>
      <F_BD desc="Fiscal">001</F_BD>
      <F_BF desc="Thousands">001</F_BF>
      <F_BG desc="Indian Rupee">9</F_BG>
    </FS_ba>
  </S_fin>
  <S_fin>
    <FS_ba>
        <F_ba>2011-10-29</F_ba>
      <F_BD desc="Fiscal">001</F_BD>
      <F_BF desc="Thousands">001</F_BF>
      <F_BG desc="Indian Rupee">9</F_BG>
    </FS_ba>
  </S_fin>
 <S_fin>
    <FS_ba>
      <F_ba>2013-10-29</F_ba>
      <F_BD desc="Fiscal">001</F_BD>
      <F_BF desc="Thousands">001</F_BF>
      <F_BG desc="Indian Rupee">9</F_BG>
    </FS_ba>
  </S_fin>
</Root>

1 个答案:

答案 0 :(得分:1)

在xslt中它看起来就像那样。

在方括号中添加对函数的引用,而不是检查非空

    <xsl:template match="@* | node()">
          <cnt>
            <xsl:value-of select="count(S_fin[FS_ba/F_ba != ''])"/>
          </cnt>
     </xsl:template>