【问题标题】:Retaining empty elements when parsing with ElementTree使用 ElementTree 解析时保留空元素
【发布时间】:2016-06-24 22:15:58
【问题描述】:

使用 Python 3.4 和 ElementTree,我尝试将子元素添加到 xml 文件中,保持 xml 文件(以 UTF-16 编写)在其他方面完全相同。

我的代码:

 new = new_XML_file.xml
 tree = ET.parse(new)
 root = tree.getroot()
 new_element = ET.SubElement(root, 'RENAMED_SOUND_FILE')
 new_element.text=new.split('\\')[num][:-4]+'.wav'
 tree.write(fake_path++new.split('\\')[num], encoding='utf-16', xml_declaration=True)

我遇到的问题是在此过程中更改了空元素。例如:

<EMPTY_ELEMENT></EMPTY_ELEMENT> 

变成:

<EMPTY_ELEMENT />

我知道对于一台机器来说,这基本上是一回事,但我想保留早期的格式以进行测试。

关于如何保留完整的空元素有什么想法吗?

【问题讨论】:

标签: python xml elementtree


【解决方案1】:

根据documentation,输出方法(无论您使用的是tostring 方法还是write)都有一个默认为True 的“short_empty_elements”关键字。将此设置为 False 应该会给您所需的输出:

import xml.etree.ElementTree as ET

root=ET.Element("root")
print(ET.tostring(root,short_empty_elements=False))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 2011-05-27
    • 2016-08-13
    • 2010-10-26
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多