0

我有一个带有子元素 cType、cDate 的架构。在地图中,我有一个循环 functoid 带出 cType = 'registration' 的所有元素,这一切都很好。

我还想在同一张地图中添加一个functoid,它在过滤掉“注册”类型后,只映射到最近日期的那个。

我看到有一个 Max functoid 但我猜这不是日期。

谁能在这里指出我正确的方向?

4

1 回答 1

1

是的,Max 和 Cumulative Max functoids 仅适用于数值而非日期。

你有两个选择。将其编写为自定义 XSLT,或按照如何在地图中获取最小和最大日期使用如下的一堆 functoid

在此处输入图像描述

  1. 日期functoid _
  2. 具有如下所示代码的脚本functoid,输入为 cDate 和 Date functoid
  3. 具有常数值注册和输入 cType的Equal functoid
  4. 具有输入 Equal 和脚本 functoid的值映射functoid
  5. 具有输入值映射 functoid的累积最大值functoid
  6. 具有输入累积最大值和脚本 functoid的Equal functoid
  7. A And Functoid 输入两个相等的 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>
于 2016-02-24T03:37:00.387 回答