XForms:根据另一个实例中的值删除一些节点

XForms: Delete some nodes based on values in another instance

在我的主实例中,我有一组节点如下:

主实例

 <Items>
    <Item>
       <Id>2</Id>
    </Item>
    <Item>
       <Id>3</Id>
    </Item>
    <Item>
       <Id>4</Id>
    </Item>
    <Item>
       <Id>5</Id>
    </Item>
 </Items>

还有另一个(类似的)实例,其值如下:

其他实例

 <Items>
    <Item>
       <Id>4</Id>
    </Item>
    <Item>
       <Id>5</Id>
    </Item>
    <Item>
       <Id>6</Id>
    </Item>
 </Items>

现在我想删除 Main 实例中的所有项目,这些项目在另一个实例中没有相应的条目,因此主实例将如下所示:

 <Items>
    <Item>
       <Id>4</Id>
    </Item>
    <Item>
       <Id>5</Id>
    </Item>
 </Items>

然后我想删除主实例中确实存在的另一个实例中的所有项目,因此另一个实例将如下所示:

 <Items>
    <Item>
       <Id>6</Id>
    </Item>
 </Items>

我正在努力使用语法来实现这一点。 提前致谢 彼得

像这样:

<xf:delete
    ref="
        instance('main')/Item[
            not(
                Id = instance('other')/Item/Id
            )
        ]"
/>

和:

<xf:delete
    ref="
        instance('other')/Item[
            Id = instance('main')/Item/Id
        ]"
/>