【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")

 

 

 

 

 

 

 

 

 

 

 

 

 

参考:

https://zhuanlan.zhihu.com/p/474331668

https://blog.csdn.net/m0_46926492/article/details/124267616

posted @ 2023-01-12 17:09  Phoenixy  阅读(88)  评论(0编辑  收藏  举报