0

30 日より前に参加した学生を除外するロジックがあります。xml要素に参加日とlastdateがあります。データ ウィーブを使用して、これら 2 つのフィールドから日付を減算する必要があります。

<School>
  <joindate>2015-10-18T00:00:00.000-08:00</joindate>
  <lastdate>2016-01-18</lastdate>
</School>
4

2 に答える 2

2

DataWeave の日時操作を試してみてください。

https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#adding-a-period-of-time

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
于 2016-01-14T18:02:32.853 に答える
2

XPath/XSLT 2.0 以降で使用できる日付と時刻の関数が多数あります。DataWeaveは XSLT 3.0 までサポートしているようです

次の式は、 lastdatejoindateの間の日数の差が 30 未満であるすべてのSchool要素に対応します。

//School[days-from-duration(xs:date(lastdate) - xs:date(xs:dateTime(joindate))) lt 30]
于 2016-01-14T15:42:47.420 に答える