Как изменить текст внутри тега в XML с помощью Python - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть несколько файлов XML в папке. Все XML-файлы имеют тег folder. это пример XML-файла

<root>
  ...
  <folder>./dir_us/</folder>
  <filename>file1.txt</filename>
  ...
</root>

Я хочу открыть каждый файл XML и изменить содержимое тега folder на ./root_folder/

Я могу открыть файл XMLи я могу прочитать содержимое тега <folder>. Но я не могу изменить текст на ./root_folder/

Это мой код до сих пор

import os
import xml.etree.cElementTree as ET

dir = './XML_FOLDER/'

for file in os.listdir(dir):

    tree = ET.parse(os.path.join(dir, file))
    root_xml = tree.getroot()

    for folder in root_xml.findall('folder'):
        folder.text = './root_folder/'

Что я делаю не так?

1 Ответ

2 голосов
/ 02 декабря 2019

Вы должны записать измененный объект в файл. Попробуйте это

import os
import xml.etree.cElementTree as ET

dir = './XML_FOLDER/'

for file in os.listdir(dir):

    tree = ET.parse(os.path.join(dir, file))
    root_xml = tree.getroot()

    for folder in root_xml.findall('folder'):
        folder.text = './root_folder/'
    tree.write(os.path.join(dir, file))
...