9
import xml.sax.xmlreader
13
class DocumentHandler(xml.sax.handler.ContentHandler):
14
def __init__(self, dirname):
17
self.dirname = dirname
19
def startElement(self, name, attributes):
20
item = attributes.get("file")
22
self.files.append(os.path.join(self.dirname, str(item)))
24
def characters(self, data):
27
def endElement(self, name):
31
def extractDocument(filename, outpath):
32
zfile = zipfile.ZipFile(filename)
33
files = zfile.namelist()
42
curpath = curpath + "/" + j
44
output = open(outpath + "/" + i, "wb")
49
def createDocument(filename, outpath):
50
files = getFilesList(filename)
51
compress = zipfile.ZipFile(outpath, "w", zipfile.ZIP_DEFLATED)
53
dirs = os.path.split(i)
55
compress.write(i, dirs[-1], zipfile.ZIP_DEFLATED)
59
def getFilesList(filename):
60
dirname = os.path.dirname(filename)
61
handler = DocumentHandler(dirname)
62
parser = xml.sax.make_parser()
63
parser.setContentHandler(handler)
64
parser.parse(filename)
67
files.append(filename)
68
files.extend(iter(handler.files))
69
dirname = os.path.join(dirname, "GuiDocument.xml")
70
if os.path.exists(dirname):