python解析xml降低内存

Python013

python解析xml降低内存,第1张

1. 使用ElementTree模块,它是Python标准库中提供的一个XML解析模块,它使用简单,非常容易使用,可以降低内存占用。

2. 使用lxml模块,它是一个高性能的XML和HTML解析器,可以有效的降低内存占用。

3. 使用iterparse()函数,它可以遍历XML文档,可以降低内存占用。

4. 使用xml.sax模块,它是一个基于事件驱动的XML解析器,可以有效的降低内存占用。

1. 我上面这段xml代码,一开始没有注意看,在每一个元素的结尾元素中都含有转义符,这就是为什么我用xml解析插件时一直保报错的原因,因为他不是正规的xml格式。我的方法是用正则替换掉:re.sub(r'(<)\\(/.+?>)',r'\g<1>\g<2>',f_xml) 对于Python中的正则re的sub用法

2. 处理成正规的xml格式后,我这里还是用ElementTree来解析的,但在加载时又报错:

cElementTree.ParseError: XML or text declaration not at start of entity: line 2, column 0

这个错误我在网上没有找到合适的答案,不过根据字面意思来解决,就是在开头的地方有错误。这里我尝试这吧xml的文档声明给去掉了,居然没有报错。这里有些不理解为什么不能加? 我的方法:f_xml=test_xml.replace('<?xml version="1.0" encoding="gbk"?>','')

3. 然后再加载,就能获取到相应的节点了。