<? xml version = "1.0" encoding = "UTF-8"?> not <? xml version = '1.0' encoding = 'UTF-8'?>
Я использую 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?
2 ответа
Это сайт для кодирования вопросов, а не сайт для советов по работе с хитрыми клиентами. Ваш клиент не прав; Ваша проблема политическая / коммерческая, а не техническая.
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)