相关疑难解决方法(0)

在Python中解析大型XML文档的最快方法是什么?

我目前正在根据Python Cookbook的第12.5章运行以下代码:

from xml.parsers import expat

class Element(object):
    def __init__(self, name, attributes):
        self.name = name
        self.attributes = attributes
        self.cdata = ''
        self.children = []
    def addChild(self, element):
        self.children.append(element)
    def getAttribute(self,key):
        return self.attributes.get(key)
    def getData(self):
        return self.cdata
    def getElements(self, name=''):
        if name:
            return [c for c in self.children if c.name == name]
        else:
            return list(self.children)

class Xml2Obj(object):
    def __init__(self):
        self.root = None
        self.nodeStack = []
    def StartElement(self, name, attributes):
        element = Element(name.encode(), attributes)
        if self.nodeStack:
            parent = self.nodeStack[-1]
            parent.addChild(element)
        else:
            self.root …
Run Code Online (Sandbox Code Playgroud)

python xml performance parsing

57
推荐指数
5
解决办法
6万
查看次数

清除()树时使用ElementTree.iterparse()时内存使用量是否会增加?

import os
import xml.etree.ElementTree as et

for ev, el in et.iterparse(os.sys.stdin):
    el.clear()
Run Code Online (Sandbox Code Playgroud)

在ODP结构上运行上述RDF转储会导致内存不断增加.这是为什么?我理解ElementTree仍然构建一个解析树,尽管有子节点clear()ed.如果这是这种内存使用模式的原因,有没有办法解决它?

python memory-leaks elementtree

7
推荐指数
1
解决办法
1767
查看次数

标签 统计

python ×2

elementtree ×1

memory-leaks ×1

parsing ×1

performance ×1

xml ×1