Вы можете попытаться удалить все пустые теги или теги, содержащие только пробельные символы, методом re.findall
, и когда он не найдет никаких тегов, l oop завершится и напечатает новую текстовую переменную.
import re
text = """<transaction>
<trans>content</trans>
<dir></dir>
<curr>
<currency></currency>
<amount></amount>
</curr>
</transaction>"""
empty_tags = True
while empty_tags:
empty_tags = re.findall(r"\s*<.*></.*>|\s*<\w*>\W+</.*>", text)
for tags in empty_tags:
text = text.replace(tags, '')
print(text)
Вывод
<transaction>
<trans>content</trans>
</transaction>