Удалите пробелы в теге xml, используя ElementTree в Python 2.6

Я хочу удалить пробелы внутри тегов Enum. На самом деле это новые строки (^$). Я получил их после удаления дочерних узлов внутри тегов Enum с помощью ElemntTree.

 <Enum name="Coupon Type" group="" defaultVal=""> </Enum>
 <Enum name="DayCountConvention" group="" defaultVal=""> </Enum>

1 ответ

Решение

Пройдите элементы и установите text приписывать None:

from xml.etree import ElementTree as etree

SOURCE = '''\
<root>
    <Enum name="Coupon Type" group="" defaultVal=""> </Enum>
    <Enum name="DayCountConvention" group="" defaultVal=""> </Enum>
</root>
'''

def main():
    root_node = etree.fromstring(SOURCE)
    for enum_node in root_node.findall('Enum'):
        enum_node.text = None
    print etree.tostring(root_node)


if __name__ == '__main__':
    main()

Выход:

<root>
    <Enum defaultVal="" group="" name="Coupon Type" />
    <Enum defaultVal="" group="" name="DayCountConvention" />
</root>

Если есть элементы, все еще содержащие контент, вы можете проверить это и просто установить text пустых элементов.

Другие вопросы по тегам