从命令行合并多个XML文件

我有几个xml文件。它们都具有相同的结构,但由于文件大小而被拆分。因此,假设我有A.xmlB.xmlC.xmlD.xml,并希望使用命令行工具将它们组合/合并到combined.xml

A.xml

<产品>
<产品id=“1234”&gt&lt/产品>
...
&lt/产品>

B.xml

<产品>
<产品id=“5678”&gt&lt/产品>
...
&lt/产品>

等等

高科技回答:

将此Python脚本另存为xmlcombine.py

#/usr/bin/env python
导入系统
从xml.etree导入元素树
def运行(文件):
第一=无
对于文件中的文件名:
data=ElementTree.parse(文件名).getroot()
如果第一个为无:
第一个=数据
其他:
第一,扩展(数据)
如果first不是None:
打印ElementTree.tostring(第一个)
如果“名称”__主要内容:
运行(sys.argv[1:])

要合并文件,请运行:

python-xmlcombine.py?.xml>combined.xml

进一步增强,考虑使用:

  • chmod+x xmlcombine.py
    允许您在命令行中省略python

  • xmlcombine.py!(合并).xml>combined.xml
    收集除输出之外的所有XML文件,但需要bash的extglob选项

  • xmlcombine.py*.xml |海绵组合.xml
    也收集combined.xml中的所有内容,但需要海绵程序

  • 导入lxml.etree作为元素树
    使用可能更快的XML解析器

发表评论