diff options
author | Fred Drake <fdrake@acm.org> | 2000-10-16 15:27:05 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2000-10-16 15:27:05 (GMT) |
commit | ac5f7483e8f0ae21e3b565e4d7d97c99898817f7 (patch) | |
tree | 20cc9f2cbca9d874c48482ffce8620f39272b2fa /Demo/xml/roundtrip.py | |
parent | f155170f09a908da985c6a525797f3a6016b2c89 (diff) | |
download | cpython-ac5f7483e8f0ae21e3b565e4d7d97c99898817f7.zip cpython-ac5f7483e8f0ae21e3b565e4d7d97c99898817f7.tar.gz cpython-ac5f7483e8f0ae21e3b565e4d7d97c99898817f7.tar.bz2 |
Demos of the new XML support from Lars Marius Garshol <larsga@garshol.priv.no>.
Diffstat (limited to 'Demo/xml/roundtrip.py')
-rw-r--r-- | Demo/xml/roundtrip.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Demo/xml/roundtrip.py b/Demo/xml/roundtrip.py new file mode 100644 index 0000000..e42bf1b --- /dev/null +++ b/Demo/xml/roundtrip.py @@ -0,0 +1,45 @@ +""" +A simple demo that reads in an XML document and spits out an equivalent, +but not necessarily identical, document. +""" + +import sys, string + +from xml.sax import saxutils, handler, make_parser + +# --- The ContentHandler + +class ContentGenerator(handler.ContentHandler): + + def __init__(self, out = sys.stdout): + handler.ContentHandler.__init__(self) + self._out = out + + # ContentHandler methods + + def startDocument(self): + self._out.write('<?xml version="1.0" encoding="iso-8859-1"?>\n') + + def startElement(self, name, attrs): + self._out.write('<' + name) + for (name, value) in attrs.items(): + self._out.write(' %s="%s"' % (name, saxutils.escape(value))) + self._out.write('>') + + def endElement(self, name): + self._out.write('</%s>' % name) + + def characters(self, content): + self._out.write(saxutils.escape(content)) + + def ignorableWhitespace(self, content): + self._out.write(content) + + def processingInstruction(self, target, data): + self._out.write('<?%s %s?>' % (target, data)) + +# --- The main program + +parser = make_parser() +parser.setContentHandler(ContentGenerator()) +parser.parse(sys.argv[1]) |