Я не рекомендую использовать классы, отличные от API, поскольку они могут измениться в любой будущей версии и могут нарушить ваш код.
Как вы узнали об этом классе? Это библиотека с открытым исходным кодом?
Попытайтесь связаться с авторами библиотеки, рассказать им ваш прецедент и найти способ с ними предложить публичный API. Если это библиотека с открытым исходным кодом, вы можете помочь им, предоставив патч.
Значение phrase
представляет собой одностроковую строку из нескольких строк в кавычках с несколькими строками . Поскольку это одна строка, пробел в начале каждой строки и символы новой строки в конце каждой строки являются частью строки, и именно это вызывает проблемы форматирования, которые вы видите.
Самое простое решение - воспользоваться тем фактом, что Python будет автоматически объединять последовательные строки. Оберните значение phrase
в скобки и вставьте в каждую кавычку одну строку.
phrase = ("""<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="test" d:title="test">
"""<d:index d:value="test" d:title="test"/><d:index d:value="test2" d:title="test2"/>"""
"""<div class="ODECN"><div class="extras"><div class="phrase"><span class="word_title"><i>test</i></span>:
"""</d:entry>""")
Это исключит начальные пробелы и символы новой строки из сгенерированного XML-файла.