我正在将一个元素插入到一个大的xml文件中。我希望插入的元素位于顶部(所以我需要使用根.插入方法,并且不能仅附加到文件中)。我也希望元素的格式与文件的其余部分相匹配。在
原始XML文件的格式为
<a>
<b>
<c/>
</b>
<d>
<e/>
</d>
....
</a>
然后运行以下代码:
^{pr2}$它以以下形式创建输出:
<a>
<b>
<c/>
</b>
<f><g/></f><d>
<e/>
</d>
....
</a>
但我希望它的形式是:
<a>
<b>
<c/>
</b>
<f>
<g/>
</f>
<d>
<e/>
</d>
....
</a>
使用jonathaneunice的解决方案“如何让Python的ElementTree漂亮地打印到XML文件?”我添加了以下代码来替换XML文件.write命令:
from xml.dom import minidom
xmlstr = minidom.parseString(ET.tostring(a)).toprettyxml(indent=" ")
with open("New_Database.xml", "w") as f:
f.write(xmlstr)
但是整个文件的格式仍然不正确。它可以正确设置新元素的格式,但原始元素现在间隔开了:
<b>
<c/>
</b>
<f>
<g/>
</f>
<c>
<d/>
</c>
....
</a>
我认为这是因为toprettyxml()命令在分隔符'\n'处添加了一个新行(因此在当前格式中添加了两个新行)。修改输入只会改变添加的元素或原始元素的格式是否错误。我需要一个方法来修改新元素或原始元素,然后再添加新元素,使它们的格式相同,然后我可以在打印前重新格式化整个批次?是否可以使用'xml.etree.ElementTree'? 在
提前谢谢。在
可以使用^{} and ^{} 属性来处理空白。也许这对你来说已经够好了。见下面的演示。在
输入文件:
代码:
^{pr2}$输出:
相关问题 更多 >
编程相关推荐