30 日より前に参加した学生を除外するロジックがあります。xml要素に参加日とlastdateがあります。データ ウィーブを使用して、これら 2 つのフィールドから日付を減算する必要があります。
<School>
<joindate>2015-10-18T00:00:00.000-08:00</joindate>
<lastdate>2016-01-18</lastdate>
</School>
DataWeave の日時操作を試してみてください。
XML から値を取得して DataWeave の変数に保存し、:date としてキャストして、スクリプトで減算します。
これはオブジェクトを提供する例です。そこから修正できると思いますか?
%dw 1.0
%output application/java
%var join = payload.School.joindate as :date
%var last = payload.School.lastdate as :date
---
period: join - last
XPath/XSLT 2.0 以降で使用できる日付と時刻の関数が多数あります。DataWeaveは XSLT 3.0 までサポートしているようです
次の式は、 lastdateとjoindateの間の日数の差が 30 未満であるすべてのSchool要素に対応します。
//School[days-from-duration(xs:date(lastdate) - xs:date(xs:dateTime(joindate))) lt 30]