如何统计 Orbeon Forms 中的数据集?

How to count a dataset in Orbeon Forms?

我有一个 HTTP 服务 returns Orbeon 将 JSON 响应转换为 XML,如下所示:

<json type="object">
    <data type="object">
        <timeSlots type="array">
            <_ type="object">
                <label>9:00AM to 9:30AM</label>
                <value>1</value>
            </_>
            <_ type="object">
                <label>10:00AM to 10:30AM</label>
                <value>2</value>
            </_>
        </timeSlots>
    </data>
    <is_success type="boolean">true</is_success>
</json>

我已经设置了一个 Orbeon“动作”,它使用名为“time-slots”的保存到数据集:

Screen shot showing Save to Dataset

但是,我不知道如何计算控件中的数据集。我尝试将以下内容添加到控件的计算值中:

count(fr:dataset('time-slots')/json/data/timeSlots/_)

count(fr:dataset('time-slots')/json/data/timeSlots)

我搞不懂语法。任何提示或想法将不胜感激!

fr:dataset() function returns 根元素而不是文档节点,就像 doc() 一样,因此您需要跳过 XPath 中的 json。如果你想根据你引用的 XML 来计算时隙的数量,下面的方法应该可以做到:

count(fr:dataset('time-slots')/data/timeSlots/_)