我有几个xml文件。它们都具有相同的结构,但由于文件大小而被拆分。因此,假设我有A.xml、B.xml、C.xml和D.xml,并希望使用命令行工具将它们组合/合并到combined.xml
A.xml
<;产品>;
<;产品id=“1234”></产品>;
...
</产品>;
B.xml
<;产品>;
<;产品id=“5678”></产品>;
...
</产品>;
等等
高科技回答:
将此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解析器