XML到csv(类似)格式

1 python xml csv

我有一个XML文件,我想将其转换/导出为csv(类似)格式.

例:

<root>
  <child>
    <Name>John</Name>
    <Surname>Doe</Surname>
    <Name>George</Name>
    <Surname>Washington</Surname>
  </child>
</root>
Run Code Online (Sandbox Code Playgroud)

ATM我是这样做的(打印用于调试,还没有完成):

#!/bin/python env

import xml.etree.ElementTree as etree

tree = etree.parse('./foobar.xml')
root = tree.getroot()

elements = ('Name', 'Surname')

for i in elements:
  for i in root.iter(i):
    print(i.text)
Run Code Online (Sandbox Code Playgroud)

电流输出:

John
George
Doe
Washington
Run Code Online (Sandbox Code Playgroud)

结果我想得到:

John, Doe
George, Washington
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我一把吗?

非常感谢你.

mat*_*ttn 6

使用xpath和zip().

#!python

import xml.etree.ElementTree as etree

root = etree.parse('./foobar.xml').getroot()

for a in zip(root.findall("child/Name"), root.findall("child/Surname")):
    print(", ".join([x.text for x in a]))
Run Code Online (Sandbox Code Playgroud)

如果要使用元素名称调用灵活.

#!python

import xml.etree.ElementTree as etree

child = etree.parse('./foobar.xml').getroot().find('child')

elements = ('Name', 'Surname')

for a in zip(*[child.findall(x) for x in elements]):
  print(", ".join([x.text for x in a]))
Run Code Online (Sandbox Code Playgroud)