From 5d1a942096a9c1955b99dae9560564cfe18e554c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Mon, 20 Jun 2005 14:24:11 +0000 Subject: [PATCH] * xmlfile'i iyice sekle semale kavustur, yazma isini daha robust yap --- pisi/files.py | 4 ++-- pisi/specfile.py | 4 ++++ pisi/xmlfile.py | 10 ++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pisi/files.py b/pisi/files.py index 8efdac10..a7d0b4ef 100644 --- a/pisi/files.py +++ b/pisi/files.py @@ -39,8 +39,8 @@ class Files(XmlFile): self.list = [FileInfo(x) for x in fileElts] def write(self, filename): - #FIXME: need a function to clear DOM first! + self.newDOM() for x in list: - elf.appendChild(x.elt(self.dom)) + self.appendChild(x.elt(self.dom)) diff --git a/pisi/specfile.py b/pisi/specfile.py index 726e0d1d..ac25175d 100644 --- a/pisi/specfile.py +++ b/pisi/specfile.py @@ -84,6 +84,8 @@ class SpecFile(XmlFile): # find all binary packages packageElts = self.getAllNodes("Package") self.packages = [PackageInfo(p) for p in packageElts] + + self.unlink() def verify(self): """Verify PSPEC structures, are they what we want of them?""" @@ -91,6 +93,8 @@ class SpecFile(XmlFile): def write(self, filename): """Write PSPEC file""" + self.newDOM() + ##TODO: write the good stuff here self.writexml(filename) class MetaData(SpecFile): diff --git a/pisi/xmlfile.py b/pisi/xmlfile.py index ad7d9d86..65dd4746 100644 --- a/pisi/xmlfile.py +++ b/pisi/xmlfile.py @@ -120,6 +120,16 @@ class XmlFile(object): def __init__(self, rootTag): self.rootTag = rootTag + self.newDOM() + + def newDOM(self): + """clear DOM""" + from xml.dom.minidom import getDOMImplementation + impl = getDOMImplementation() + dom = impl.createDocument(None, self.rootTag, None) + + def unlink(self): + self.dom.unlink() def readxml(self, fileName): self.dom = mdom.parse(fileName)