在使用minido解析xml文件时,因为文件过大,结果报错MemoryError。查询后得知是因为minidom在解析时是将所有文件放到内存里的,很占用内存,所以要考虑换一种方法来处理xml文件。
 
ElementTree相比minidom消耗内存更小,下面是ElementTree的一些简单用法
 
XML源文件中的部分内容:
 
#导入ElementTree
from xml.etree import ElementTree
 
#读入并解析XML文件,读入的是树形结构
doc = ET.parse(XML文件地址)
 
#.getroot()获得xml文件的根节点
root = self.doc.getroot()
 
#.findall()找到根节点下的所有子节点
httpSample_nodes = root.findall('httpSample')   #httpSample为子节点的tag
for i in httpSample_nodes:
     print("打印i的结果是:",i)
          #.attrib获得节点的所有属性结果存在字典结构里
     print("打印i.attrib的结果是:",i.attrib)
#.attrib["rc"]获得节点"rc"的属性值
     print('打印i.attrib["rc"]的结果是:',i.attrib["rc"])
#.getchildren()获得节点的所有子节点,.getchildren()[0]获得子节点的第一个子节点
     i.getchildren()[0]
     #.text获得节点的内容
     print("打印i的text的结果是:",i.text)
     print("i第一个子节点的内容是:",i.getchildren()[0].text)

具体的打印结果如下:


ElementTree 解析xml(minidom解析xml大文件时,MemoryError)的更多相关文章

  1. pandas读取大文件时memoryerror的解决办法

    再用pd.read_csv读取大文件时,如果文件太大,会出现memoryerror的问题. 解决办法一:pd.read_csv的参数中有一个chunksize参数,为其赋值后,返回一个可迭代对象Tex ...

  2. ASP.NET 使用 plupload 上传大文件时出现“blob”文件的Bug

    最近在一个ASP.NET 项目中使用了plupload来上传文件,结果几天后客户发邮件说上传的文件不对,说是文件无法打开 在进入系统进行查看后发现上传的文件竟然没有后缀,经过一番测试发现如果文件上传的 ...

  3. 优化 UltraEdit 打开大文件时的性能

    UltraEdit 原本就是被设计成可以打开超大文件的工具,只不过在默认情况下需要进行以下优化设置: 禁止临时文件 禁止显示行号 禁止文件(回车 & 换行符)转换 禁止代码折叠 禁止显示函数列 ...

  4. ASP.NET MVC 上传大文件时404

    前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传. 后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M ...

  5. Git Compare with base,比较大文件时,长时间等待,无法加载

    问题 当使用Git比较一个大文件(几十兆数量级)版本见差异时,会一直等待加载,且内存消耗很大,导致其他进程很难执行.任务管理器中,可以看到此时的TortoiseGitMerge吃掉3G左右的内存. 原 ...

  6. .NET上传大文件时提示Maximum request length exceeded错误的解决方法

    使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...

  7. WebUploader上传大文件时,上传出错问题

    上传普通文件没有问题,当文件达到一定大小的时候,上传错误,返回结果是404,我可以肯定的是路径是没有问题的.因为上传小文件等都是可以的. 然后使用webuploader的uploaderror监控错误 ...

  8. 批量上传文件或者上传大文件时 gateWay报错DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144

    一.描述 最近在批量上传文件时网关出现了异常,后面发现上传大文件也会出现文件超过256发生异常,异常信息如下: org.springframework.core.io.buffer.DataBuffe ...

  9. 压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明

    一.说明 我们的MySQL实例在备份后需要将数据打包压缩,部分低配机器在压缩时容易出现CPU打满导致报警的情况,需要在压缩文件时进行CPU资源的限制. 因此针对此问题进行了相关测试,就有了此文章. 二 ...

随机推荐

  1. wxWidgets:前景色与背景色

    wxWidgets中有多个函数可以用来设定前景色和背景色,下面就来看看他们的用法区别: wxWindow::SetBackgroundColour(const wxColour &) 在你重绘 ...

  2. windows下使用RedisCluster集群简单实例

    一.开发环境 ruby环境准备 下载 64位的 RubyInstaller并安装 地址http://rubyinstaller.org/downloads/勾选下面三个不用配置环境变量 Image.p ...

  3. Java-Runoob-高级教程-实例-数组:08. Java 实例 – 数组填充

    ylbtech-Java-Runoob-高级教程-实例-数组:08. Java 实例 – 数组填充 1.返回顶部 1. Java 实例 - 数组填充  Java 实例 以下实例我们通过 Java Ut ...

  4. tomcat 乱码问题

    页面提交都是utf8编码进后台,但是后台入库有些中文数据是正常,有些是乱码,可以完全排除数据库层面的问题 比较一下正常和异常的http请求,一个是Get,一个是Post, 原因就找到了 tomcat4 ...

  5. 1076 Forwards on Weibo (30 分)

    1076 Forwards on Weibo (30 分) Weibo is known as the Chinese version of Twitter. One user on Weibo ma ...

  6. ORA-03113:通信通道的文件结尾

    问题: 用命令startup启动实例时,报错“ORA-03113:通信通道的文件结尾”. 解决: SQL> startup mount ORACLE 例程已经启动. Total System G ...

  7. JS - 函数,Math,number

    函数分为:关键字function 匿名函数 — 没有名字的函数 有名函数 — 有名字的函数 <body> <div></div> <script> // ...

  8. uva-331-枚举-交换的方案数

    题意:冒泡排序,最小交换数的前提下有多少用方案把数组变成从小到大的顺序, 注意: 3 2 1 3的下表是1  2的是2 1的是3  交换 3 2,那么第一个交换数是1 最小交换数=逆序数的和 那么,只 ...

  9. TortoiseGit上传项目到GitHub

    1. 简介 gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. 2. 准备 2.1  安装git:https://git-scm.c ...

  10. 1.mysql ERROR 1045 (28000): 错误解决办法

    转自:https://www.cnblogs.com/jpwz/p/6061214.html ERROR 1045 (28000): Access denied for user 'ODBC'@'lo ...