我正在使用 lxml 与
tree.write(xmlFileOut, pretty_print = True, xml_declaration = True, encoding='UTF-8'
写出我打开和编辑的 xml 文件,但我绝对需要将 xml 声明为
<?xml version=“1.0” encoding=“UTF-8”?>
和不
<?xml version='1.0' encoding='UTF-8'?>
现在我知道它们在 xml 方面是完全相同的,但我正在与一个非常棘手的客户打交道,他绝对必须在声明中包含
"
而不是 '
。我到处寻找但找不到答案。
我可以创建它并以某种方式将其添加到 xml 的头部吗?
我可以告诉 lxml 这就是我需要的 xml 声明吗?
这是一个解决编码问题的网站,而不是提供应对棘手客户的建议的网站。你的客户错了;你的问题是政治/商业问题,而不是技术问题。
XML 允许单引号和双引号,请参阅常见语法结构,文字。 取决于所使用的 xml 处理器,使用什么。 11年前同样的问题。 另请参阅 python 论坛中版本 3.7 的讨论。
# single quoting in xml declaration
from lxml import etree
from io import StringIO
xml = '<root>tree</root>'
f = StringIO(xml)
tree = etree.parse(f)
root = tree.getroot()
xmlFileOut = "out.xml"
tree.write(xmlFileOut, pretty_print=True, xml_declaration = True, encoding="UTF-8")
# double quoting in xml declaration
from xml.dom import minidom
xmlDom = minidom.parse("out.xml")
prettyXML = xmlDom.toprettyxml(encoding="UTF-8")
with open("out_min.xml", mode="wb") as file:
file.write(prettyXML)
索努酒保 出生日期 16/06/2004 男性 地址 Barashimulguri 马塔班加 库奇·贝哈尔 736171西孟加拉邦-73617 蒙纳尔 9907660533