一、命名空间冲突,标签前显示ns0:问题
解决办法是添加以下2行标识命名空间:
from xml.etree.ElementTree import register_namespace register_namespace('', "http://autosar.org/schema/r4.0")
二、python删除元素A下的所有祖孙结点
1、递归删除A(即root_idts)的每一个直接结点下的祖孙结点 def del_iter(root_idts): if len(root_idts) != 0: for chi in root_idts: if len(chi) != 0: for delete_childs in chi: del_iter(delete_childs) else: root_idts.remove(chi) else: pass 2、调用1的方法,然后删除A(即root_idts)的每一个直接结点 while len(root_idt) != 0: for root_idt_chi in root_idt: del_iter(root_idt_chi) root_idt.remove(root_idt_chi)
三、格式化xml文件
python解析xml文件,使用apend向xml文件追加元素时,没有自带格式化,展示如下:
特殊处理格式化:
1、引入模块:import xml.dom.minidom as MI
2、删除xml的所有元素前后的空格空行,以字符串保存
lines = '' fileHandler = open("D:\\tools\\project_data\\test.arxml","r", encoding='UTF-8') listOfLines = fileHandler.readlines() for line in listOfLines: lines = lines + line.strip() fileHandler.close()
3、toprettyxml处理字符串,生成新的格式化的xml并逐行写入
xml = MI.parseString(lines) xml_pretty_str = xml.toprettyxml() file_write = open("D:\\tools\\project_data\\new.arxml",'w',encoding='UTF-8') # 新文件 for line in xml_pretty_str: file_write.write(line)# 逐行写入 file_write.close()