在Python 3中使用xml.etree.ElementTree将叶节点创建为<leaf> </leaf>而不是<leaf>

时间:2018-09-04 14:24:55

标签: python xml python-3.x

我正在使用xml.etree.ElementTree构建xml文档。 我使用ET.Element('root')创建根节点,然后根据要求使用ET.SubElement(parent_node, 'child_name')递归创建子节点,然后使用xml_minidom.parseString(ET.tostring(current_node)).toprettyxml()输出。

问题是,没有子节点的节点输出为<nodeName/>,但我希望它输出为<nodeName></nodeName>。我该怎么办?

1 个答案:

答案 0 :(得分:0)

由于评论,我找到了一种解决方法(以某种方式)。根据需要,将无子节点的text属性设置为空白或换行符。

>>> childlessNode = ET.SubElement(parent_node, "childless") >>> childlessNode.text = ' '

或者如果不需要它的引用

ET.SubElement(parent_node, "childless").text = ' '

引用(感谢Caramiriel的评论):https://github.com/python/cpython/blob/09b52471f39ba280d836b945d47719c697af0b45/Lib/xml/etree/ElementTree.py#L934