解析XML后用SAX返回对象

1 投票
1 回答
501 浏览
提问于 2025-04-15 23:42

我有一些很大的XML文件需要解析,所以我创建了一个对象类来存放我需要的数据。不过,我现在不太确定怎么把这个对象返回,以便后续处理。目前我把数据保存成一个文件,然后过一会儿再把这个对象读回来,这样感觉有点浪费,肯定有办法可以直接获取我的数据,而不需要写入硬盘。

def endElement(self, name):
    if name == "info": # done collecting this iteration
        self.data.setX(self.x)
        self.data.setY(self.y)
    elif name == "lastTagOfInterest": # done with file
        # want to return my object from here
        filehandler = open(self.outputname + ".pi", "w")
        pickle.dump(self.data, filehandler)
        filehandler.close()

我试过在我的endElement标签里放一个返回语句,但这个返回值似乎没有传递到我调用SAX解析器的地方。

谢谢大家的建议。

1 个回答

2

唉,我坐下来想了一下,答案其实很简单。就是用return来退出这个方法,然后直接从我创建的ContentHandler对象中提取数据字段。

撰写回答