March 2003
Intermediate to advanced
656 pages
39h 30m
English
XMLGenerator
class XMLGenerator(out=sys.stdout,encoding='iso-8859-1')
Subclasses
xml.sax.ContentHandler and implements all that is
needed to reproduce the input XML document on the given file-like
object out with the specified
encoding. When you must generate an XML
document that is a small modification of the input one, you can
subclass XMLGenerator, overriding methods and
delegating most of the work to
XMLGenerator’s implementations of
the methods. For example, if all you need to do is rename some tags
according to a dictionary, XMLGenerator makes it
quite simple, as shown in the following example:
import xml.sax, xml.sax.saxutils
def tagrenamer(infile, outfile, renaming_dict):
base = xml.sax.saxutils.XMLGenerator
class Renamer(base):
def rename(self, name):
return renaming_dict.get(name, name)
def startElement(self, name, attrs):
base.startElement(self, self.rename(name),
attrs)
def endElement(self, name):
base.endElement(self, self.rename(name))
xml.sax.parse(infile, Renamer(outfile))Read now
Unlock full access