如何在 Orbeon 实例的特定节点之后插入节点?
How to insert nodes after specific node of an instance in Orbeon?
我在模型中有一个实例:
<Exams>
<ExamCode>14</ExamCode>
</Exams>
<Exams>
<ExamCode>15</ExamCode>
</Exams>
我想遍历所有元素并在 ExamCode 元素之后添加一些节点但没有父节点。
迭代后我的实例应该是这样的:
<-- Wanted -->
<Exams>
<ExamCode>14</ExamCode>
<ExamTitle></ExamTitle>
<ExamDescription>/ExamDescription>
</Exams>
<Exams>
<ExamCode>15</ExamCode>
<ExamTitle></ExamTitle>
<ExamDescription></ExamDescription>
</Exams>
我试过的是:
Instance to add:
<!-- instance nodes to add-->
<xf:instance id="examRelatedNodes">
<ExamTitle/>
<ExamDescription/>
</xf:instance>
Adding "examRelatedNodes" instance to all repeated Exams nodes:
<!-- insert examRelatedNodes per Exam -->
<xf:action ev:event="xforms-ready" xxf:iterate="instance('fr-form-instance')/Exams">
<xf:insert context="." origin="instance('examRelatedNodes')"/>
</xf:action>
但是我收到一个错误,要添加的实例应该有父实例!
我已经阅读了 orbeon 博客的 documentation, this,但在我发现的所有范例中,to-add-instance 的元素都有一个父元素,但在我的例子中,我不想 have.Following 这些带有父节点的示例,我可以添加它们,但是我不想要带有父节点 "ParentOfExtraNodes" 的示例:
<-- Not wanted -->
<Exams>
<ExamCode>14</ExamCode>
<ParentOfExtraNodes>
<ExamTitle></ExamTitle>
<ExamDescription>/ExamDescription>
<ParentOfExtraNodes/>
</Exams>
<Exams>
<ExamCode>15</ExamCode>
<ParentOfExtraNodes>
<ExamTitle></ExamTitle>
<ExamDescription>/ExamDescription>
<ParentOfExtraNodes/>
</Exams>
我正在使用 Orbeon Forms 4.5(XForms 实现)。
你所做的看起来是正确的。但是在您的实例 examRelatedNodes
中,您需要有一个根元素,例如:
<xf:instance id="examRelatedNodes">
<RelatedNodes>
<ExamTitle/>
<ExamDescription/>
</RelatedNodes>
</xf:instance>
然后您的插入内容将变为:
<xf:insert context="." origin="instance('examRelatedNodes')/*"/>
我在模型中有一个实例:
<Exams>
<ExamCode>14</ExamCode>
</Exams>
<Exams>
<ExamCode>15</ExamCode>
</Exams>
我想遍历所有元素并在 ExamCode 元素之后添加一些节点但没有父节点。
迭代后我的实例应该是这样的:
<-- Wanted -->
<Exams>
<ExamCode>14</ExamCode>
<ExamTitle></ExamTitle>
<ExamDescription>/ExamDescription>
</Exams>
<Exams>
<ExamCode>15</ExamCode>
<ExamTitle></ExamTitle>
<ExamDescription></ExamDescription>
</Exams>
我试过的是:
Instance to add:
<!-- instance nodes to add-->
<xf:instance id="examRelatedNodes">
<ExamTitle/>
<ExamDescription/>
</xf:instance>
Adding "examRelatedNodes" instance to all repeated Exams nodes:
<!-- insert examRelatedNodes per Exam -->
<xf:action ev:event="xforms-ready" xxf:iterate="instance('fr-form-instance')/Exams">
<xf:insert context="." origin="instance('examRelatedNodes')"/>
</xf:action>
但是我收到一个错误,要添加的实例应该有父实例!
我已经阅读了 orbeon 博客的 documentation, this,但在我发现的所有范例中,to-add-instance 的元素都有一个父元素,但在我的例子中,我不想 have.Following 这些带有父节点的示例,我可以添加它们,但是我不想要带有父节点 "ParentOfExtraNodes" 的示例:
<-- Not wanted -->
<Exams>
<ExamCode>14</ExamCode>
<ParentOfExtraNodes>
<ExamTitle></ExamTitle>
<ExamDescription>/ExamDescription>
<ParentOfExtraNodes/>
</Exams>
<Exams>
<ExamCode>15</ExamCode>
<ParentOfExtraNodes>
<ExamTitle></ExamTitle>
<ExamDescription>/ExamDescription>
<ParentOfExtraNodes/>
</Exams>
我正在使用 Orbeon Forms 4.5(XForms 实现)。
你所做的看起来是正确的。但是在您的实例 examRelatedNodes
中,您需要有一个根元素,例如:
<xf:instance id="examRelatedNodes">
<RelatedNodes>
<ExamTitle/>
<ExamDescription/>
</RelatedNodes>
</xf:instance>
然后您的插入内容将变为:
<xf:insert context="." origin="instance('examRelatedNodes')/*"/>