计算xpath中日期在最近六个月的案例



我进行了一次搜索,但很难找到一个我理解/可以使用的答案。基本上,我需要使用xpath,在某些情况下将日期与今天进行比较。

我正在询问的xml块包含几个帐户记录,下面是一个包含相关数据的块的摘录示例:

<acc>
<default>
<defdate>2017-07-01</defdate>
<defsatdate>2017-09-01</defsatdate>
</default>    
</acc>

我需要计算在今天的最后六个月内有多少账户有defdate,但在哪些账户没有得到满足。这就是defdate存在的地方,在过去六个月内,而defsatdate不存在。(请注意,如果帐户未输入默认值,则该部分将完全不存在)。

请注意,这个xpath将在实时环境中运行,因此日期部分需要是动态的,并计算出今天的情况,而不是我能够在xpath中解决这个问题。

因此,在上面的例子中,账户在过去六个月内违约,但也得到了满足。因此,它不会进入我的计数。

我看过翻译功能等,但我还是个新手,所以很挣扎!

count(//acc[not(.//defsatdate) and 
translate(.//defdate, '-','') <= '20171031' and
translate(.//defdate, '-','') >= '20170331'])

(增加换行符以便于阅读)

的必要说明

//acc[not(.//defsatdate)      - find `acc` without `defsatdate`
translate(.//defdate, '-','') - remove dash from the string

相关内容

  • 没有找到相关文章

最新更新