Копирование элемента XML из одного файла в другой с помощью командной строки - PullRequest
0 голосов
/ 01 мая 2020

Как я могу скопировать элемент вместе с любым содержимым, которое у него есть, из файла XML в другой, используя инструмент командной строки?

Например, есть ли способ скопировать весь контент из файла X ниже для файла Y с помощью команды, такой как «копировать в файл-y.mynotes из файла x.note»?

Файл X:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Файл Y:

<?xml version="1.0" encoding="UTF-8"?>
<mynotes>

  <!-- The content of file X here -->

  <note>
    <to>Tove2</to>
    <from>Jani2</from>
    <heading>Reminder2</heading>
    <body>Don't forget me this weekend2!</body>
  </note>

  <note>
    <to>Tove3</to>
    <from>Jani3</from>
    <heading>Reminder3</heading>
    <body>Don't forget me this weekend!3</body>
  </note>

<mynotes>

1 Ответ

0 голосов
/ 02 мая 2020

Это немного сложно, но можно сделать с помощью xidel:

xidel  file_y.xml --xquery 'let $abc := (./mynotes/note) \
let $def := doc("file_x.xml")//*[1] return insert-before($abc, 0, $def)' --output-format xml
...