Вы можете использовать функцию XPath string()
.
Если у вас большие куски пустого пространства из смешанного контента, вы можете использовать функцию XPath normalize-space()
.
Пример всех трех (твоих и моих двоих) ...
Python
from lxml import etree
xml = """<doc>
<div class="title_wrapper">Some text. Some <span>more</span> text.
<span>Even <span>m<span>o</span>re</span> text!</span>
</div>
</doc>"""
tree = etree.fromstring(xml)
print(''.join(tree.xpath('//div[@class="title_wrapper"]')[0].itertext()))
print(tree.xpath('string(//div[@class="title_wrapper"])'))
print(tree.xpath('normalize-space(//div[@class="title_wrapper"])'))
выход
Some text. Some more text.
Even more text!
Some text. Some more text.
Even more text!
Some text. Some more text. Even more text!