xml - Orbeon XForms 重复问题

标签 xml orbeon xforms

我想用我的 XML 文件的内容填充一个 XForm 重复部分。 首先,我需要根据 XML 文件的以下记录创建行:

<Entity code="a" type="AdditionalServices" active="true" sortOrder="1">
                <Description language="de">a</Description>
                <Description language="en">a</Description>
            </Entity>
<Entity code="b" type="AdditionalServices" active="true" sortOrder="2">
                <Description language="de">b</Description>
                <Description language="en">b</Description>
            </Entity>
<Entity code="c" type="AdditionalServices" active="true" sortOrder="3">
                <Description language="de">c</Description>
                <Description language="en">c</Description>
            </Entity>
<Entity code="d" type="AdditionalServices" active="true" sortOrder="4">
                <Description language="de">d</Description>
                <Description language="en">d</Description>
            </Entity>
<Entity code="e" type="AdditionalServices" active="true" sortOrder="5">
                <Description language="de">e</Description>
                <Description language="en">e</Description>
            </Entity>
<Entity code="f" type="AdditionalServices" active="true" sortOrder="6">
                <Description language="de">f</Description>
                <Description language="en">f</Description>
            </Entity>

我可以通过以下方式做到这一点:

<fr:grid>
    <xh:table >
        <xh:thead>
        <xh:tr>
            <xh:th>Code</xh:th>
        </xh:tr>
        </xh:thead>
        <xh:tbody >
            <xf:repeat ref="instance('fr-form-instance')//Entity[@type='AdditionalServices']" appearance="full">
                <xh:tr>
                    <xh:td>
                        <xf:input ref="@code"></xf:input>   
                    </xh:td>
            </xf:repeat>
        </xh:tbody>
    </xh:table>
</fr:grid>

然后显示存储在以下 XML 部分中的数量:

<CalcAdditionalServices>
    <AdditionalServicesCode>d</AdditionalServicesCode>
    <Quantity>1</Quantity>
</CalcAdditionalServices>
<CalcAdditionalServices>
    <AdditionalServicesCode>e</AdditionalServicesCode>
    <Quantity>2</Quantity>
</CalcAdditionalServices>

我的代码如下:

<xh:td>
<xf:input ref="instance('fr-form-instance')//CalcAdditionalServices[AdditionalServicesCode/text()=current()/@code]//Quantity"></xf:input>
</xh:td>

我只得到第一个数量:

Code   Qty
a      
b
c
d      1
e
f

我对 XForms 没有那么多经验,所以如果有人能给我提示就太好了。

最佳答案

系统没有创建第二个节点。

<CalcAdditionalServices>
    <AdditionalServicesCode>e</AdditionalServicesCode>
    <Quantity>2</Quantity>
</CalcAdditionalServices>

我们更改了替换方法,现在一切正常。

关于xml - Orbeon XForms 重复问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750540/

相关文章:

xpath - 如何计算 XPath 或 XQuery 中的加权平均值?

xml - XPath 可以连接两个节点集值吗? (用于 XForms)

mysql - Orbeon Form Builder - 将数据从 Orbeon 表加载到自定义表

error-handling - 为什么xforms-submit-error事件属性始终为空?

orbeon - 在 XForms 中,如何使除少数字段之外的所有字段为只读?

Java 保存 xml 时出错

xml - XSL : Add attributes to an empty etiquete with xsl:attribute

java - 如何使表格行适合屏幕宽度?

java - 泛型类的 XStream 反序列化返回 java.lang.Object

forms - 在 Liferay 中使用 Orbeon Forms