<?xml version=“1.0” encoding=“UTF-8”?> 不是<?xml version='1.0' encoding='UTF-8'?>

问题描述 投票:0回答:3

我正在使用 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 声明吗?

python xml lxml xml-declaration
3个回答
2
投票

这是一个解决编码问题的网站,而不是提供应对棘手客户的建议的网站。你的客户错了;你的问题是政治/商业问题,而不是技术问题。


0
投票

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)

0
投票

索努酒保 出生日期 16/06/2004 男性 地址 Barashimulguri 马塔班加 库奇·贝哈尔 736171西孟加拉邦-73617 蒙纳尔 9907660533

© www.soinside.com 2019 - 2024. All rights reserved.