我有一个带有子元素 cType、cDate 的架构。在地图中,我有一个循环 functoid 带出 cType = 'registration' 的所有元素,这一切都很好。
我还想在同一张地图中添加一个functoid,它在过滤掉“注册”类型后,只映射到最近日期的那个。
我看到有一个 Max functoid 但我猜这不是日期。
谁能在这里指出我正确的方向?
我有一个带有子元素 cType、cDate 的架构。在地图中,我有一个循环 functoid 带出 cType = 'registration' 的所有元素,这一切都很好。
我还想在同一张地图中添加一个functoid,它在过滤掉“注册”类型后,只映射到最近日期的那个。
我看到有一个 Max functoid 但我猜这不是日期。
谁能在这里指出我正确的方向?
是的,Max 和 Cumulative Max functoids 仅适用于数值而非日期。
你有两个选择。将其编写为自定义 XSLT,或按照如何在地图中获取最小和最大日期使用如下的一堆 functoid
脚本functoid中的代码
public int DateDiff(DateTime cDate, DateTime today)
{
return (cDate - today).Days;
}
基本上,如果 cType = Registration 并且日期是最大注册日期,则映射它。
输入
<ns0:Registrations xmlns:ns0="http://Scratch.Registration">
<Registration>
<cType>registration</cType>
<cDate>1999-05-31</cDate>
</Registration>
<Registration>
<cType>registration</cType>
<cDate>2016-05-31</cDate>
</Registration>
<Registration>
<cType>not</cType>
<cDate>2016-08-31</cDate>
</Registration>
</ns0:Registrations>
输出
<ns0:Registrations xmlns:ns0="http://Scratch.Registration">
<Registration>
<cType>registration</cType>
<cDate>2016-05-31</cDate>
</Registration>
</ns0:Registrations>