python - 如何使用 python 3 将 xml prolog 包含到 xml 文件中?
问题描述
我想在我的 XML 文件中包含 XML 序言......我尝试了以下 -
ET.tostring(root, encoding='utf8', method='xml')
但它仅在打印时有效,不适用于写入文件。我有一个小代码,我在其中更改属性并修改 XML 文件。但我也想添加 XML 序言。知道怎么做吗?
import xml.etree.ElementTree as ET
tree = ET.parse('xyz.xml')
root = tree.getroot()
root[0].text = 'abc'
ET.tostring(root, encoding='utf8', method='xml')
tree.write('xyz.xml')
解决方案
使用lxml.etree
它:
import lxml.etree
xml = lxml.etree.parse('xyz.xml')
root = xml.getroot()
root[0].text = 'abc'
with open("xyz2.xml", 'wb') as f:
f.write(lxml.etree.tostring(root, xml_declaration=True, encoding="utf-8"))
print(open("xyz2.xml", 'r').read())
输出:
<?xml version='1.0' encoding='utf-8'?>
<note>
<to>abc</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
推荐阅读
- python - 从python中的嵌套json数组中提取数据
- javascript - 在数组中切片节点
- reactjs - 您可以在条件内使用 useState 中的“setter”吗?
- ios - 删除后如何重新安装 ProjectUITests?
- google-sheets - 使用 Google 表格公式从具有多种类型的未排序数据集中获取每种类型的 MIN 值
- python - TKinter 窗口在 Python 中没有响应
- elixir - 当日期位于 DST 的不同侧时使用 Timezone.convert
- javascript - 如何在 Javascript 中每隔几秒调用一次函数?
- node.js - 等待关键字不停止执行
- jenkins - 如何获取或将其他工作构建持续时间传递给当前工作