既存の xml ファイルの大きなセットがあり、それらすべてに 1 つの要素を追加しようとしています (それらは多くの maven プロジェクトの pom.xml であり、それらすべてに親要素を追加しようとしています)。以下は私の正確なコードです。
問題は、pom2.xml の最終的な xml 出力に、完全なparent
要素が 1 行に含まれていることです。ただし、要素を単独で印刷すると、通常どおり 4 行で書き出されます。parent
要素の適切なフォーマットで完全な xml を出力するにはどうすればよいですか?
from lxml import etree
parentPom = etree.Element('parent')
groupId = etree.Element('groupId')
groupId.text = 'org.myorg'
parentPom.append(groupId)
artifactId = etree.Element('artifactId')
artifactId.text = 'myorg-master-pom'
parentPom.append(artifactId)
version = etree.Element('version')
version.text = '1.0.0'
parentPom.append(version)
print etree.tostring(parentPom, pretty_print=True)
pom = etree.parse("pom.xml")
projectElement = pom.getroot()
projectElement.insert(0, parentPom)
file = open("pom2.xml", 'wb')
file.write(etree.tostring(projectElement, pretty_print=True))
file.close()
印刷物の出力:
<parent>
<groupId>org.myorg</groupId>
<artifactId>myorg-master-pom</artifactId>
<version>1.0.0</version>
</parent>
pom2.xml の同じ要素の出力:
<parent><groupId>com.inmobi</groupId><artifactId>inmobi-master-pom</artifactId><version>1.0.1</version></parent><modelVersion>4.0.0</modelVersion>