Вам нужно либо убрать пробелы самостоятельно, либо сообщить парсеру, чтобы он сделал это для вас (если это возможно).
Я потратил несколько минут, пытаясь найти параметры конфигурации парсера, доступные с помощьюМинидом посмотрел на исходный код и, честно говоря, я не могу потрудиться посмотреть дальше, поскольку он хорошо задокументирован с использованием lxml.etree
:
from lxml import etree
sample = """
<previousTag>
<previousSubElement1>Foo</previousSubElement1>
<previousSubElement2>Bar</previousSubElement2>
</previousTag>
"""
doc = etree.XML(sample,etree.XMLParser(remove_blank_text=True))
addedTag1 = doc.makeelement('addedTag1')
addedTag2 = doc.makeelement('addedTag2')
addedTag2.text = "Baz"
addedTag1.append(addedTag2)
doc.append(addedTag1)
print etree.tostring(doc,pretty_print=True)
Выход:
<previousTag>
<previousSubElement1>Foo</previousSubElement1>
<previousSubElement2>Foo</previousSubElement2>
<addedTag1>
<addedTag2>Baz</addedTag2>
</addedTag1>
</previousTag>
Существуют и другие способы изменения объектов XML с помощью lxml.etree
, это всего лишь быстрый и грязный пример.