Python xml.etree.ElementTree解析多个.xml文件

时间:2013-01-24 21:57:03

标签: python xml-parsing elementtree

我正在尝试使用Python ElementTree解析多个xml文件。 我的部分代码如下:

dirSelected = tkFileDialog.askdirectory()

# User names the output csv file
csvFile = raw_input('Enter the name for the result csv file ')
csvFile = csvFile + ".csv"
resultCSV = open(csvFile, "w+")

# Formation of a long string that becomes the header of the csv file
resultCSV_header = 'header,' + 'header2,'
print (resultCSV_header, file = resultCSV)  

for root, dirs, files in os.walk(dirSelected):
    for fi in files:
        #parse S1.xml files       
        if (fi.endswith('.xml') and fi.startswith('S')):
            filePath = os.path.join(root, fi)
            #Parse XML directly from the file path
            tree = ET.parse(filePath)
            #Get the root node
            doc = tree.getroot()
            column1 = doc.find('.//TAG1').text
            ...
            resultCSV_recipe = (column1 + "," + column2 + ...)
                print (resultCSV_xml)
                print (resultCSV_xml, file=resultCSV)

我的问题是我试图解析多个* .xml文件并将数据放入* .csv输出文件的一行。例如,我在所选文件夹中有S1.xml,S2.xml,C1.xml,C2.xml,我希望将S1.xml和C1.xml中的数据放入输出文件的一行。我的输出文件是一个简单的* .csv文件,我希望用Excel打开,我自己定义行和列。

我现在可以解析从S1.xml到输出的所有TAG,它工作正常,但是当我尝试通过遍历所选文件夹中的所有文件和dirs来解析C1.xml时,我遇到了一些问题。 for循环和输出参数。显示“赋值前引用的局部变量'column1'”。

是否可以使用Python在一个文件夹中连接多个* .xml文件。或者是否有更好的函数来解析* .xml文件。 谢谢大家!!! //

0 个答案:

没有答案