Я пытаюсь сгладить xml и написать в csv, чтобы он мог использоваться процессом etl.
<Answers>
<AnswersList>
<Entry key="qs_location_name" type="System.String">
<value>Location Name</value>
</Entry>
<Entry key="qs_location_riskAddress1" type="System.String">
<value>Risk Address 1</value>
</Entry>
<Entry key="qs_location_riskAddress2" type="System.String">
<value>Risk Address 2</value>
</Entry>
</AnswersList>
</Answers>
Мой код такой, как показано ниже
from lxml import etree
from io import StringIO
tree = etree.parse(StringIO(xml_file))
root = tree.getroot().tag
for node in tree.iter():
for child in node.getchildren():
if child.text:
if child.text.strip():
print("{}.{} = {}".format(root, ".".join(tree.getelementpath(child).split("/")), child.text.strip()))
Вышекод обеспечивает следующий вывод:
AustraliaBizPackProposal.Answers.AnswersList.Entry[1].value = Location Name
AustraliaBizPackProposal.Answers.AnswersList.Entry[2].value = Risk Address 1
AustraliaBizPackProposal.Answers.AnswersList.Entry[3].value = Risk Address 2
Мой ожидаемый вывод - генерировать его, как показано ниже, пожалуйста, сообщите
AustraliaBizPackProposal.Answers.AnswersList.qs_location_name.value = Location Name
AustraliaBizPackProposal.Answers.AnswersList.qs_location_riskAddress1.value = Risk Address 1
AustraliaBizPackProposal.Answers.AnswersList.qs_location_riskAddress2.value = Risk Address 2