python xml.etree.ElementTree 模块批量处理xml 标签

2023-12-17 20:58

本文主要是介绍python xml.etree.ElementTree 模块批量处理xml 标签,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在用 xml.etree.ElementTree 模块批量删除xml标签的时候,会出现的问题是,用遍历并不能一次将复合条件的标签删掉。

如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="lebian_Download_Error">下载失败,请检查网络</string>
    <string name="lebian_Download_Error_retry">下载出错,正在尝试重新下载,请稍候</string>
    <string name="lebian_MD5_mismatch">下载失败:MD5不匹配</string>
    <string name="lebian_MD5_of_original_file_mismatch">下载失败:原始文件MD5不匹配</string>
    <string name="lebian_apply_patch_failed">文件合并失败,请重试</string>
    <string name="lebian_authorities_error">以下Provider的authorities属性配置错误或缺失:</string>
    <string name="lebian_button_cancel">取消</string>
</resources>

在从网上看到有网友说,remove()每次删除标签的时候,都会重新获取对象。根据自己出现的情况于是找到了核实的方法:

就是将你删除的lebian标签个数统计出来,然后每删除一个标签,获取一下文件的对象。

步骤如下:

1:打开xml 文件获取root标签

2:将符合条件的标签进行删除

3:重新将删除后的xml写入文件。

4:一次遵循上面1-3的步骤,直到删除完毕

def main(filename,log):
    num=0
    try:
        tree=ET.parse(filename)
        root=tree.getroot()
        for i in root.getchildren():
            for chid in i.attrib:
                if i.attrib[chid].find("lebian")>=0 or i.attrib[chid].find("Lebian")>=0:
                    num=num+1
                    break;
    except Exception,e:
        print e
    finally:
        return num
def remove(num,filename,log):
    time=0;
    while(time<num):
        tree=ET.parse(filename)
        root=tree.getroot()
        for i in root.getchildren():
            for chid in i.attrib:
                if i.attrib[chid].find("lebian")>=0 or i.attrib[chid].find("Lebian")>=0:
                    time=time+1
                    root.remove(i)
                    break;
        tree.write(filename,encoding="utf-8",xml_declaration=True)


 

 

这篇关于python xml.etree.ElementTree 模块批量处理xml 标签的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/505824

相关文章

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

Python将字库文件打包成可执行文件的常见方法

《Python将字库文件打包成可执行文件的常见方法》在Python打包时,如果你想将字库文件一起打包成一个可执行文件,有几种常见的方法,具体取决于你使用的打包工具,下面就跟随小编一起了解下具体的实现方... 目录使用 PyInstaller基本方法 - 使用 --add-data 参数使用 spec 文件(

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址