【Python】ElementTree模块_XML处理模块
ElementTree模块
Tips:Python2.4之前版本在使用ElementTree模块时,需要import xml.etree.ElementTree的操作。
加载文件
# 将XMl文件加载并返回一个ELementTree对象 xml_name = "../data.xml" tree = ET.parse(xml_name)
获取内容
# 得到第一个匹配sina标签的Element对象 sina = tree.find("Header") # # 得到sina的SubElement for sub_tag in sina: logs.debug(sub_tag) # Element logs.debug(sub_tag.tag) # 获取标签 logs.debug(sub_tag.text) # 获取内容 # 得到所有匹配sina标签的Element对象的list集合 list_contry = tree.findall("Header") for contry in list_contry: for sub_tag in contry: logs.debug(sub_tag) logs.debug(sub_tag.tag) logs.debug(sub_tag.text)
修改内容
# 修改xml文件 for rank in tree.iter('ResultMsg'): new_text = "修改" rank.text = str(new_text) # rank.set('mark', 'success') # 标签中插入mark tree.write(xml_name, encoding="UTF-8")
示例:
封装修改xml文件内容
def parseXmlFile_to_updata(env, tag, new_content, xml_name='xxx'): """ 更新xml文件 :param env:环境 :param tag:需要修改的标签 :param new_content: 修改后的内容 :param xml_name: xml文件名,Tips:填写文件名时不包含.xml后缀:xxx :return: """ # 将XMl文件加载并返回一个ELementTree对象 xml_name = "../data/{}/{}.xml".format(env, xml_name) tree = ET.parse(xml_name) # 修改xml文件 for rank in tree.iter(tag): new_text = new_content rank.text = str(new_text) tree.write(xml_name, encoding="UTF-8")
参考:
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------