Python 提取b.xml文件多个camera标签的属性id和label,根据新的label对应值赋值对应的id,代码如何写
时间: 2024-10-28 14:14:50 浏览: 16
在Python中,我们可以使用`ElementTree`库来解析XML文件并提取标签属性。假设你的`b.xml`文件结构类似这样:
```xml
<document>
<camera id="1" label="old_label_1">...</camera>
<camera id="2" label="old_label_2">...</camera>
<!-- 更多 camera 标签 -->
</document>
```
你可以按照下面的步骤编写代码,首先读取文件,然后遍历`camera`标签,更新其`id`属性的值:
```python
import xml.etree.ElementTree as ET
# 假设新的label到id映射存储在一个字典里,例如:
new_labels = {"old_label_1": "new_id_1", "old_label_2": "new_id_2"}
def update_camera_ids(xml_file, new_labels_map):
tree = ET.parse(xml_file)
root = tree.getroot()
for camera in root.findall('.//camera'):
old_label = camera.get('label')
if old_label in new_labels_map:
new_id = new_labels_map[old_label]
camera.set('id', new_id)
# 保存修改后的XML树
tree.write(xml_file, encoding='utf-8', xml_declaration=True)
# 使用新标签到ID的映射
update_camera_ids("b.xml", new_labels)
```
这个脚本会直接修改原文件,如果你不想覆盖原始文件,可以先备份再运行,或者创建一个新的文件保存结果。
阅读全文