如何使用 python 更改 XML 标签内的文本

how to change text inside tag in XML with python

我在一个文件夹中有多个 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/'

我做错了什么?

你应该将更改后的对象写入 file.Try this

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))