mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Reduce the number of imports needed.
Make the code conform better to the Python style guide.
This commit is contained in:
parent
480abc2751
commit
a12adfe485
1 changed files with 23 additions and 20 deletions
|
@ -1,34 +1,37 @@
|
|||
"""
|
||||
A library of useful helper classes to the sax classes, for the
|
||||
"""\
|
||||
A library of useful helper classes to the SAX classes, for the
|
||||
convenience of application and driver writers.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
import types, string, sys
|
||||
import handler
|
||||
|
||||
def escape(data, entities = {}):
|
||||
|
||||
def escape(data, entities={}):
|
||||
"""Escape &, <, and > in a string of data.
|
||||
|
||||
You can escape other strings of data by passing a dictionary as
|
||||
the optional entities parameter. The keys and values must all be
|
||||
strings; each key will be replaced with its corresponding value.
|
||||
"""
|
||||
data = string.replace(data, "&", "&")
|
||||
data = string.replace(data, "<", "<")
|
||||
data = string.replace(data, ">", ">")
|
||||
data = data.replace("&", "&")
|
||||
data = data.replace("<", "<")
|
||||
data = data.replace(">", ">")
|
||||
for chars, entity in entities.items():
|
||||
data = string.replace(data, chars, entity)
|
||||
data = data.replace(chars, entity)
|
||||
return data
|
||||
|
||||
|
||||
class XMLGenerator(handler.ContentHandler):
|
||||
|
||||
def __init__(self, out = sys.stdout):
|
||||
def __init__(self, out=None):
|
||||
if out is None:
|
||||
import sys
|
||||
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')
|
||||
|
||||
|
@ -39,9 +42,9 @@ class XMLGenerator(handler.ContentHandler):
|
|||
pass
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
if type(name)==type(()):
|
||||
uri, localname, prefix=name
|
||||
name="%s:%s"%(prefix,localname)
|
||||
if type(name) is type(()):
|
||||
uri, localname, prefix = name
|
||||
name = "%s:%s"%(prefix,localname)
|
||||
self._out.write('<' + name)
|
||||
for (name, value) in attrs.items():
|
||||
self._out.write(' %s="%s"' % (name, escape(value)))
|
||||
|
@ -56,10 +59,11 @@ class XMLGenerator(handler.ContentHandler):
|
|||
|
||||
def ignorableWhitespace(self, content):
|
||||
self._out.write(content)
|
||||
|
||||
|
||||
def processingInstruction(self, target, data):
|
||||
self._out.write('<?%s %s?>' % (target, data))
|
||||
|
||||
|
||||
class XMLFilterBase:
|
||||
"""This class is designed to sit between an XMLReader and the
|
||||
client application's event handlers. By default, it does nothing
|
||||
|
@ -80,10 +84,10 @@ class XMLFilterBase:
|
|||
self._err_handler.warning(exception)
|
||||
|
||||
# ContentHandler methods
|
||||
|
||||
|
||||
def setDocumentLocator(self, locator):
|
||||
self._cont_handler.setDocumentLocator(locator)
|
||||
|
||||
|
||||
def startDocument(self):
|
||||
self._cont_handler.startDocument()
|
||||
|
||||
|
@ -138,7 +142,7 @@ class XMLFilterBase:
|
|||
|
||||
def setLocale(self, locale):
|
||||
self._parent.setLocale(locale)
|
||||
|
||||
|
||||
def getFeature(self, name):
|
||||
return self._parent.getFeature(name)
|
||||
|
||||
|
@ -150,4 +154,3 @@ class XMLFilterBase:
|
|||
|
||||
def setProperty(self, name, value):
|
||||
self._parent.setProperty(name, value)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue