【问题标题】:How to count a dataset in Orbeon Forms?如何计算 Orbeon Forms 中的数据集?
【发布时间】:2020-12-21 02:39:54
【问题描述】:

我有一个 HTTP 服务,它返回一个 JSON 响应,Orbeon 将其转换为 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“操作”,它使用名为“时间槽”的保存到数据集:

Screen shot showing Save to Dataset

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

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

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

我无法弄清楚语法。任何提示或想法将不胜感激!

【问题讨论】:

    标签: orbeon


    【解决方案1】:

    fr:dataset() function 返回根元素而不是文档节点,就像 doc() 一样,因此您需要跳过 XPath 中的 json。如果您想根据您引用的 XML 计算时隙数,以下应该可以解决问题:

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

    【讨论】:

    • 优秀的@jlong​​e,我很高兴这有效,并感谢您的确认。 ——亚历克斯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2021-04-27
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多