From 58af43fd760c2d7d0d8238b7919cf8fa9f1b6dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Sun, 24 Sep 2000 21:31:06 +0000 Subject: [Patch 101634] xml.sax: Fix parse and parseString not to rely on ExpatParser Greatly simplify import logic by using __import__ saxutils: Support Unicode strings and files as parameters to prepare_input_source --- Lib/xml/sax/saxutils.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'Lib/xml/sax/saxutils.py') diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py index 8f8f42e811..3f130f3af5 100644 --- a/Lib/xml/sax/saxutils.py +++ b/Lib/xml/sax/saxutils.py @@ -3,10 +3,12 @@ A library of useful helper classes to the SAX classes, for the convenience of application and driver writers. """ -import os, urlparse, urllib +import os, urlparse, urllib, types import handler import xmlreader +_StringTypes = [types.StringType, types.UnicodeType] + def escape(data, entities={}): """Escape &, <, and > in a string of data. @@ -189,8 +191,12 @@ def prepare_input_source(source, base = ""): """This function takes an InputSource and an optional base URL and returns a fully resolved InputSource object ready for reading.""" - if type(source) == type(""): + if type(source) in _StringTypes: + source = xmlreader.InputSource(source) + elif hasattr(source, "read"): + f = source source = xmlreader.InputSource(source) + source.setByteStream(f) if source.getByteStream() == None: sysid = source.getSystemId() -- cgit v1.2.1