我有一个csv文件,其中一列信息是XML格式的。我希望能够将这些信息解析为单独的列并重新保存。我试图用python做这个,但我没有太多运气。我已经看过堆栈交换上的类似问题,但我仍然无法知道该怎么做。
感谢您的高级帮助!
ķ
答案 0 :(得分:1)
ElementTree是一个python XML解析器(https://docs.python.org/2/library/xml.etree.elementtree.html)
将CSV单元格中的XML文字解析为字符串,然后遍历元素并重新保存它们:
from xml.etree.ElementTree import XML
parsed = XML('''
<root>
<group>
<child id="a">This is child "a".</child>
<child id="b">This is child "b".</child>
</group> // replace this with a variable that contains your XML string literals
<group>
<child id="c">This is child "c".</child>
</group>
</root>
''')
print 'parsed =', parsed
for elem in parsed:
print elem.tag
if elem.text is not None and elem.text.strip():
print ' text: "%s"' % elem.text
if elem.tail is not None and elem.tail.strip():
print ' tail: "%s"' % elem.tail
for name, value in sorted(elem.attrib.items()):
print ' %-4s = "%s"' % (name, value)
print
来源:https://pymotw.com/2/xml/etree/ElementTree/parse.html#parsing-strings
或者您可以直接转换XML单元格:
http://blog.appliedinformaticsinc.com/how-to-parse-and-convert-xml-to-csv-using-python/