Отключить экранирование при красивой печати XML с Python ElementTree и minidom - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать файл XML, используя Python с ElementTree, затем красиво печатать его, используя minidom, следуя этому фрагменту . Проблема, с которой я сталкиваюсь, заключается в том, что когда я генерирую SubElement, если строка содержит кавычки, она экранируется до ".

Код довольно прост:

from xml.etree import ElementTree as et
from xml.dom import minidom

def prettify(elem):
    """Return a pretty-printed XML string for the Element."""
    rough_string = et.tostring(elem, 'utf-8')
    reparsed = minidom.parseString(rough_string)
    return reparsed.toprettyxml(indent="\t")

top = et.Element("Base")
sub = et.SubElement(top, "Sub")
sub.text = 'Hello this is "a test" with quotes'

print(prettify(top))

И генерируется XML:

<?xml version="1.0" ?>
<Base>
  <Sub>Hello this is &quot;a test&quot; with quotes</Sub>
</Base>

Есть ли способ избежать экранирования кавычек?

...