#XPATH删除不存在两次的节点集

时间:2018-08-01 13:07:31

标签: xslt xpath xslt-2.0

我有一个需求,我需要过滤掉所有在输入XML中不会出现双精度的节点集。

我的源文件由2条消息和1条XML组成。两条消息可以具有相同的注释集,但是,消息1可以具有其他需要过滤掉的节点集:

<messages>
<msg1>
    <element1>
        <a>dummy field</a>
        <b>22222</b>
        <c>33333</c>
    </element1>
    <element2>
    <d>4444444</d>
    </element2>
</msg1>
<msg2>
    <element1>
        <b>22222</b>
        <c>33333</c>
    </element1>
</msg2>

如您所见,msg1和msg2都有字段b和c。 msg1中的字段a可以忽略,因为它包含一个虚拟值。因此,这意味着element1节点及其子字段在msg 1和msg2中相同。但是,msg2中不存在element2,因此应将其从输出文件中删除。我期望的输出文件是:

<messages>
    <msg1>
        <element1>
            <a>dummy field</a>
            <b>22222</b>
            <c>33333</c>
        </element1>
    </msg1>
    <msg2>
        <element1>
            <b>22222</b>
            <c>33333</c>
        </element1>
    </msg2>
</messages>

感谢百万人的帮助!

0 个答案:

没有答案