BASH SHELL SCRIPT, чтобы разбить большой XML-файл на несколько маленьких файлов - PullRequest
5 голосов
/ 18 августа 2011

У меня есть XML-файл в следующем формате

<?xml version="1.0" encoding="utf-8" ?>
<parent>
    <child>
        <code></code>
        <text></text>
    </child>
    <child>
        <code></code>
        <text></text>
    </child>
 </parent>

Мне нужен скрипт BASH SHELL, чтобы разбить этот основной XML-файл на несколько небольших XML-файлов, которые должны иметь содержимое от <child> до </child> тег.Имена файлов могут быть именем родительского файла плюс серийный номер, например _1, например: 20110721_1.xml и т. Д. Пожалуйста, помогите мне с сценарием.

Ответы [ 2 ]

9 голосов
/ 18 августа 2011

Не чистый ответ, но вы можете настроить его самостоятельно:

csplit -ksf part. src.xml /\<child\>/ "{100}" 2>/dev/null

Эта команда разделит src.xml, используя регулярное выражение /\<child\>/ в качестве разделителя, и произведет 1..100 part.* файлов.Вы должны играть с регулярным выражением, хотя ...

5 голосов
/ 18 августа 2011

Одним из решений является написание файла XSL и использование xsltproc с таблицей стилей и файлом xml для создания отдельных файлов.

См. Как разбить файл XML на множество файлов XML с помощью XSLT для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...