欢迎访问宙启技术站
智能推送

使用xml.etree.cElementTree()将XML文件转化为CSV文件的方法

发布时间:2023-12-16 08:09:18

xml.etree.cElementTree是Python标准库中的模块,用于解析和生成XML数据。它提供了一种将XML文件转换为CSV文件的方法。

下面是使用xml.etree.cElementTree将XML文件转换为CSV文件的步骤和示例代码:

1. 导入所需的模块:

import csv
import xml.etree.cElementTree as etree

2. 打开XML文件并解析:

tree = etree.parse('input.xml')
root = tree.getroot()

3. 创建CSV文件并定义相应的编码方式:

csvfile = open('output.csv', 'w', encoding='utf-8', newline='')
csvwriter = csv.writer(csvfile)

4. 写入CSV文件的表头:

headers = []
for child in root[0]:
    headers.append(child.tag)
csvwriter.writerow(headers)

5. 迭代XML文件中的每个元素,并将元素的值写入CSV文件:

for element in root:
    values = []
    for child in element:
        values.append(child.text)
    csvwriter.writerow(values)

6. 关闭CSV文件:

csvfile.close()

整个代码如下所示:

import csv
import xml.etree.cElementTree as etree

tree = etree.parse('input.xml')
root = tree.getroot()

csvfile = open('output.csv', 'w', encoding='utf-8', newline='')
csvwriter = csv.writer(csvfile)

headers = []
for child in root[0]:
    headers.append(child.tag)
csvwriter.writerow(headers)

for element in root:
    values = []
    for child in element:
        values.append(child.text)
    csvwriter.writerow(values)

csvfile.close()

假设XML文件内容如下:

<fruits>
    <fruit>
        <name>apple</name>
        <color>red</color>
    </fruit>
    <fruit>
        <name>orange</name>
        <color>orange</color>
    </fruit>
    <fruit>
        <name>banana</name>
        <color>yellow</color>
    </fruit>
</fruits>

运行上述代码后,将生成一个名为output.csv的CSV文件,内容如下:

name,color
apple,red
orange,orange
banana,yellow

这就是使用xml.etree.cElementTree将XML文件转换为CSV文件的方法和示例。你可以根据自己的需求进行相应的修改和扩展。