0
lxmlを使用してXMLファイルを作成しています。私は1つの行にXMLファイル全体を書き込むことができる午前:Pythonl lxml XMLファイルを作成するときに特定のノード間に改行を追加する
<FIXML><Batch Total="3"><Hdr SendTime="2016-09-27T13:32:19-05:00"/><RepeatingNode Price="0.99" RptID="1"><Date Dt="2016-09-20"/></RepeatingNode><RepeatingNode Price="2.49" RptID="2"><Date Dt="2016-09-20"/></RepeatingNode><RepeatingNode Price="0.25" RptID="3"><Date Dt="2016-09-20"/></RepeatingNode></Batch></FIXML>
と私はpretty_printパラメータ使用して、それをpretty_printすることができる午前:しかし、私は私のファイルに書きたい
<FIXML>
<Batch Total="3">
<Hdr SendTime="2016-09-27T13:32:19-05:00"/>
<RepeatingNode Price="0.99" RptID="1">
<Date Dt="2016-09-20"/>
</RepeatingNode>
<RepeatingNode Price="2.49" RptID="2">
<Date Dt="2016-09-20"/>
</RepeatingNode>
<RepeatingNode Price="0.25" RptID="3">
<Date Dt="2016-09-20"/>
</RepeatingNode>
</Batch>
</FIXML>
をし、各ReapeatingNodeの後にのみ改行を追加してください。私はまた、字下げを避けたいと思います。私の理想的な出力ファイルは、次のようになります。
import lxml.etree as et
fixml_node = et.Element("FIXML")
batch_node = et.SubElement(fixml_node, "Batch")
et.SubElement(batch_node, "Hdr")
for row in data:
repeating_node = et.SubElement(batch_node, "RepeatingNode")
et.SubElement(repeating_node, "Date")
complete_new_file = et.ElementTree(fixml_node)
complete_new_file.write("output_file")
# or below when pretty-printing
complete_new_file.write("output_file", pretty_print=True)
私は私の所望の出力を達成することができますどのように任意の提案:以下
<FIXML>
<Batch Total="3">
<Hdr SendTime="2016-09-27T13:32:19-05:00"/>
<RepeatingNode Price="0.99" RptID="1"><Date Dt="2016-09-20"/></RepeatingNode>
<RepeatingNode Price="2.49" RptID="2"><Date Dt="2016-09-20"/></RepeatingNode>
<RepeatingNode Price="0.25" RptID="3"><Date Dt="2016-09-20"/></RepeatingNode>
</Batch>
</FIXML>
私のコードのためのフレームワークはありますか?