python批量修改xml属性,根据特定name属性打印出xml文件名
时间: 2023-10-03 15:09:15 浏览: 105
批量对xml文件指定内容的更改
您好,可以使用Python内置的xml.etree.ElementTree模块来处理XML文件。这里提供一份代码,可以根据指定的name属性批量修改XML文件中的属性,并输出符合条件的XML文件名。
```python
import os
import xml.etree.ElementTree as ET
# 修改指定name属性的XML文件
def modify_xml(file_path, name_attr, new_attr):
tree = ET.parse(file_path)
root = tree.getroot()
for elem in root.iter():
if 'name' in elem.attrib and elem.attrib['name'] == name_attr:
elem.attrib['value'] = new_attr
tree.write(file_path)
# 打印符合条件的XML文件名
def print_xml_file(file_path, name_attr):
tree = ET.parse(file_path)
root = tree.getroot()
for elem in root.iter():
if 'name' in elem.attrib and elem.attrib['name'] == name_attr:
print(file_path)
break
# 遍历指定目录下的所有XML文件
def modify_xml_files(dir_path, name_attr, new_attr):
for root, dirs, files in os.walk(dir_path):
for file_name in files:
if file_name.endswith('.xml'):
file_path = os.path.join(root, file_name)
modify_xml(file_path, name_attr, new_attr)
print_xml_file(file_path, name_attr)
# 测试代码
if __name__ == '__main__':
dir_path = 'xml_files' # 指定目录
name_attr = 'attr1' # 指定name属性
new_attr = 'new_value' # 新的属性值
modify_xml_files(dir_path, name_attr, new_attr)
```
在代码中,`modify_xml()`函数用于修改指定name属性的XML文件,`print_xml_file()`函数用于打印符合条件的XML文件名,`modify_xml_files()`函数用于遍历指定目录下的所有XML文件,调用上述两个函数实现修改和打印操作。
阅读全文