如何使用 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))
我在一个文件夹中有多个 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))