当我将一个元素添加到空的XML元素中时,lxml模块的漂亮打印失败:
以下是我的python代码:
import lxml.etree
xml_parser = lxml.etree.XMLParser(remove_blank_text=True)
xml_tree = lxml.etree.parse("myFile.xml", xml_parser)
root = xml_tree.getroot()
for elem in root:
if elem.tag == "apple":
lxml.etree.SubElement(elem, "McIntosh")
tree = lxml.etree.ElementTree(root)
tree.write("output.xml", pretty_print=True, xml_declaration=True, encoding="utf-8")
以下是我的XML输入文件:
<fruits>
<apple>
</apple>
</fruits>
下面是我的输出XML文件:
<?xml version='1.0' encoding='UTF-8'?>
<fruits>
<apple>
<McIntosh/></apple>
</fruits>
如果我的XML元素不是空的,那么我的代码就可以工作:
<?xml version='1.0' encoding='UTF-8'?>
<fruits>
<apple>
<golden/>
<McIntosh/>
</apple>
</fruits>
如果我找不到解决方案,我将不得不实现一个定制的XML格式化程序.
有人知道如何解决这个问题吗?