from xml.sax.handler import ContentHandler from xml.sax import parse class PageMaker(ContentHandler): passthrough = False def startElement(self, name, attrs): if name == 'page': self.passthrough = True self.out = open(attrs['name'] + '.html', 'w') self.out.write('\n') self.out.write('{}\n'.format(attrs['title'])) self.out.write('\n') elif self.passthrough: self.out.write('<' + name) for key, val in attrs.items(): self.out.write(' {}="{}"'.format(key, val)) self.out.write('>') def endElement(self, name): if name == 'page': self.passthrough = False self.out.write('\n\n') self.out.close() elif self.passthrough: self.out.write(''.format(name)) def characters(self, chars): if self.passthrough: self.out.write(chars) parse('website.xml', PageMaker())