我有一个格式为
的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等。
请帮我写一下这个剧本。
答案 0 :(得分:9)
不是纯粹的答案,但你可以自己调整一下:
csplit -ksf part. src.xml /\<child\>/ "{100}" 2>/dev/null
此命令将使用regexp src.xml
作为分隔符分割/\<child\>/
并生成1..100 part.*
个文件。
你需要玩regexp但是......
答案 1 :(得分:5)
一种解决方案是编写XSL文件并使用xsltproc
与样式表和xml文件生成单个文件。
有关示例,请参阅How to split XML file into many XML files using XSLT。