我的输入 XML 文件看起来像
<test-message>
<segment id="MSH"/>
<segment id="SFT"/>
<segment id="PID"/>
<segment id="NTE"/>
<segment id="NK1"/>
<segment id="PV1"/>
<segment id="ORC"/>
<segment id="OBR"/>
<segment id="NTE"/>
<segment id="OBX"/>
<segment id="NTE"/>
<segment id="SPM"/>
</test-message>
在我上面的输入 XML 文件元素段中,id="ORC"是可选的
我想根据 id="ORC" 的元素段或 id="OBR" 的元素段对我的输入XML文件进行分组
对于上面的输入 XML 文件,当存在 id="ORC" 的元素段时,我希望得到以下结果
<message-group>
<test-message>
<segment id="MSH"/>
<segment id="SFT"/>
<segment id="PID"/>
<segment id="NTE"/>
<segment id="NK1"/>
<segment id="PV1"/>
</test-message>
<test-message>
<segment id="ORC"/>
<segment id="OBR"/>
<segment id="NTE"/>
<segment id="OBX"/>
<segment id="NTE"/>
<segment id="SPM"/>
</test-message>
</message-group>
对于上面的输入 XML 文件,当不存在 id="ORC" 的元素段时,我希望得到以下结果
<message-group>
<test-message>
<segment id="MSH"/>
<segment id="SFT"/>
<segment id="PID"/>
<segment id="NTE"/>
<segment id="NK1"/>
<segment id="PV1"/>
</test-message>
<test-message>
<segment id="OBR"/>
<segment id="NTE"/>
<segment id="OBX"/>
<segment id="NTE"/>
<segment id="SPM"/>
</test-message>
</message-group>
我可以使用 XSLT (2.0) 模板或函数来处理上述情况吗
注意:我正在使用 XSLT 2.0 和 saxon 解析器