我有一个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)
任何人都可以帮我一把吗?
非常感谢你.
使用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)
| 归档时间: |
|
| 查看次数: |
5041 次 |
| 最近记录: |