Мне нужно конвертировать XML в CSV.я попробовал библиотеку xmlutils, я не мог получить ожидаемые поля.на самом деле мой XML не имеет общих тегов в дереве XML.xml sample:
<service.className>
<Id>3001</Id>
<sId>12.*</sId>
<qId>1</qId>
<timeR>123</timeR>
<pId>1/1/7</pId>
<sMode/>
<highipvalue>1</highipvalue>
<highipvalue2>1</highipvalue2>
<highipvalue3>1</highipvalue3>
</service.className>
<service.className>
<Id>3001</Id>
<sId>12.*</sId>
<policy>2</policy>
<timeR>123</timeR>
<pId>1/1/7</pId>
<sMode>mode1</sMode>
<medipvalue>1</medipvalue>
<medipvalue2>1</medipvalue2>
<medipvalue3>1</medipvalue3>
</service.className>
<service.className>
<Id>3001</Id>
<sId>12.*</sId>
<policy>3</policy>
<timeR>123</timeR>
<pId>1/1/7</pId>
<sMode>mode2</sMode>
<lowipvalue>1</lowipvalue>
<lowipvalue2>1</lowipvalue2>
<lowipvalue3>1</lowipvalue3>
</service.className>
и т. д., повторяя .......
ожидаемый вывод csv:
Id sId qid policyid timeR pId sMode highipvalue highipvalue2 highipvalue3 medipvalue medipvalue2 medipvalue3 lowipvalue lowipvalue2 lowipvalue3
3001 12.* 1 0 123 1/01/2007 0 1 1 1 0 0 0 0 0 0
3001 12.* 0 2 123 1/01/2007 mode1 0 0 0 1 1 1 0 0 0
3001 12.* 0 3 123 1/01/2007 mode2 0 0 0 0 0 0 1 1 1
но теперь я получаю поляв CSV только первое дерево элементов XML, как показано ниже
Id sId qid policyid timeR pId sMode highipvalue highipvalue2 highipvalue3
3001 12.* 1 0 123 1/01/2007 1 1 1
3001 12.* 0 2 123 1/01/2007 mode1 1 1 1
3001 12.* 0 3 123 1/01/2007 mode2 1 1 1
код, который я пытался:
import xml.etree.ElementTree as et
from xmlutils.xml2csv import xml2csv
out_csv_path=csv path
in_xml_path=xml path
converter = xml2csv(in_xml_path, out_csv_path, encoding="utf-8")
converter.convert(tag="className",buffer_size=1000,quotes=False)
любая помощь высоко ценится.
Заранее спасибо, Мани