如何在 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')/*"/>