如何为Python生成的XML文件添加指定XML声明头?
修改Python代码添加XML声明头
你可以通过两种方式实现添加目标XML声明头:
方法一:调整ET.tostring()的参数
直接在ET.tostring()中指定xml_declaration=True,同时明确编码为'utf-8',生成的字节流就会包含所需的声明头。修改后的代码如下:
import xml.etree.ElementTree as ET import requests import json import csv data = ET.Element('XMLFORMPOST') element0 = ET.SubElement(data, 'REQUEST') element1 = ET.SubElement(data, 'LOGIN') element2 = ET.SubElement(data, 'PARTNUM') element2.text = str(ingramPartNumber) element3 = ET.SubElement(data, 'LOOKUPTYPE') # 添加xml_declaration参数并指定编码 b_xml = ET.tostring(data, xml_declaration=True, encoding='utf-8') with open("finalfile.xml", "wb") as f: f.write(b_xml)
方法二:使用ElementTree对象的write()方法
这是更符合ElementTree规范的用法,先创建ElementTree对象,再调用write()方法时传入声明参数:
import xml.etree.ElementTree as ET import requests import json import csv data = ET.Element('XMLFORMPOST') element0 = ET.SubElement(data, 'REQUEST') element1 = ET.SubElement(data, 'LOGIN') element2 = ET.SubElement(data, 'PARTNUM') element2.text = str(ingramPartNumber) element3 = ET.SubElement(data, 'LOOKUPTYPE') # 创建ElementTree实例并写入文件 tree = ET.ElementTree(data) tree.write("finalfile.xml", xml_declaration=True, encoding='utf-8')
两种方法都能生成包含<?xml version='1.0' encoding='utf8'?>声明头的XML文件,第二种方法更贴合官方推荐的使用流程。
内容的提问来源于stack exchange,提问作者Alex Co
相关产品推荐
相关产品推荐

