前段时间帮实习带我的姐姐在网上抓数,量还挺大,最后几千个XML文件要合并,被逼无奈,用XML写了一个简单的,本人也是刚学python,所有可能有更好的办法我还不知道,请大师走过路过不吝赐教!
最后感谢坛主提供的好工具,永远支持开源的东西!
以下是我写的代码,有注释,我用的python版本为2.7.
# -*- coding: cp936 -*-
def combiner(filePath,tag,saveTo):#变量为要合并的文件所在文件夹的地址;要提取合并的元素的上一级标签;要保存的文件的地址
import xml.etree.ElementTree as ET
import os
file = os.listdir(filePath)# 获取文件夹里所有文件的文件名
content = []
for i in range(0,len(file)):
doc = ET.parse(filePath+file[i])#逐个打开文件夹里的文件
n = len(content)
content[n:] = doc.findall(tag)#把文件里的‘tag’项下面的所有元素加到列表content里
product = ET.Element('product')#新建一个root为‘product’的树结构
tree = ET.ElementTree(product)
for e in content:
product.append(e)#把列表content里的内容,追加到‘product’里面
tree.write(saveTo,encoding = 'cp936',xml_declaration= False)#写入文件
print "已经合并了%i个项目"%len(product)#显示合并的数目
用了ElementTree这个模板做的解析。