python在将xml树写回文件后会导致关闭标记的样式不同,为什么?

2024-06-26 14:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在修改XML文档XML.etree.ElementTree,然后将新的(修改过的)XML结构写入一个新文件

如果我将原始标记与新标记进行比较,就会发现python改变了结束标记的样式

原创风格:

<prop name="Type"></prop>

修改样式:

<prop name="Type" />

我知道新样式是完全正确的,但我有点担心,它可能会对我正在使用的遗留系统造成一些不良的副作用。那么,是否有可能使用与原始XML文档相同的结束样式(<prop name="Type"></prop>而不是短的<prop name="Type" />

修改后的树通过以下方式写回文件:

tree.write(panelModPath,encoding='utf-8', xml_declaration=True) 

Tags: 文件name文档标记风格系统type样式
1条回答
网友
1楼 · 发布于 2024-06-26 14:28:17

write方法接受method参数。您可以将其设置为html以保留结束标记

import xml.etree.ElementTree as ET
from io import BytesIO

source = """
<prop name="Type"></prop>
"""

tree = ET.ElementTree(ET.fromstring(source))
file = BytesIO()

tree.write(file, encoding='utf-8', method="html", xml_declaration=True)

print(file.getvalue())

印刷品:

b'<prop name="Type"></prop>'

相关问题 更多 >