0

如何将 XML 拆分为 2 个单独的文档,如下所示?

输入:

<stocks>
<stock>
    <stockid>78</stockid>
    <desc>Apple</desc>
    <details>
        <element1>XYZ</element1>
        <element2>ABC</element2>
    </details>
</stock>
<stock>
    <stockid>78</stockid>
    <desc>Apple</desc>
    <details>
        <element1>qwe</element1>
        <element2>asd</element2>
    </details>
</stock>
<stock>
    <stockid>65</stockid>
    <desc>Tesla</desc>
    <details>
        <element1>GHJ</element1>
        <element2>JKL</element2>
    </details>
</stock>

输出:

文档 1:

<stocks>
<stock>
    <stockid>78</stockid>
    <desc>Apple</desc>
    <details>
        <element1>XYZ</element1>
        <element2>ABC</element2>
    </details>
</stock>
<stock>
    <stockid>78</stockid>
    <desc>Apple</desc>
    <details>
        <element1>qwe</element1>
        <element2>asd</element2>
    </details>
</stock>

文件 2:

<stock>
    <stockid>65</stockid>
    <desc>Tesla</desc>
    <details>
        <element1>GHJ</element1>
        <element2>JKL</element2>
    </details>
</stock>

我已经尝试使用业务规则形状和数据流程形状但失败了。任何人请协助。我所做的是,在数据处理形状中,我尝试根据 stockid 对其进行拆分,但结果不如预期。而且我不知道 groovy 或 javascript,所以我没有尝试使用脚本。

4

1 回答 1

0

一种可能的解决方案是使用映射将单个记录转换为平面文件。这应该从第一个初始文档中输出 3 个文档。在映射之后,使用数据处理形状来组合平面文件,然后使用第二个条目来拆分平面文件。拆分将是平面文件,在配置文件上拆分,配置文件是平面文件,链接元素将是 stockid。然后再做一张地图,将平面文件制作成原始的 xml 配置文件。

概述:映射(XML->FF)到数据处理(合并和拆分)到映射(FF->XML)。

于 2020-09-27T03:37:35.020 回答