Разделить XML на группу связанных узлов

Инструменты CLI, такие как csplit, позволяют нам разделить файлы XML на основе определенного элемента. Я хочу разделить файлы XML на группу. Например:

<prices>
  <price>
    <code>A123</code>
    <discount>123</discount>
  </price>
  <price>
    <code>A123</code>
    <discount>123</discount>
  </price>
  <price>
    <code>B456</code>
    <discount>123</discount>
  </price>
</prices>

необходимо разделить на один файл с помощью:

<price>
    <code>A123</code>
    <discount>123</discount>
</price>
<price>
    <code>A123</code>
    <discount>123</discount>
</price>

и другой файл с:

<price>
    <code>B456</code>
    <discount>123</discount>
</price>

Мы можем достичь этого, используя потоковый анализатор XML и сравнивая значение элемента кода с предыдущим и генерируем новые файлы XML, если они не равны. Однако должен быть более эффективный способ, используя комбинацию инструментов CLI.

xml,

0