首页 > 解决方案 > 如何使用 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')

标签: pythonpython-3.xxmllxmlelementtree

解决方案


使用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>

推荐阅读