summaryrefslogtreecommitdiffstats
path: root/Lib/xml
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-07-19 16:10:15 (GMT)
committerFred Drake <fdrake@acm.org>2001-07-19 16:10:15 (GMT)
commitacd32d3be542987078c65a8a34d7844cfa7ebbe8 (patch)
treee3ff8c129dd9cc8d18a9cdf06b0fab20943554bb /Lib/xml
parent3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3 (diff)
downloadcpython-acd32d3be542987078c65a8a34d7844cfa7ebbe8.zip
cpython-acd32d3be542987078c65a8a34d7844cfa7ebbe8.tar.gz
cpython-acd32d3be542987078c65a8a34d7844cfa7ebbe8.tar.bz2
Added function xml.sax.saxutils.quoteattr().
This closes SF bug #440351. It should not be moved to Python 2.1.1.
Diffstat (limited to 'Lib/xml')
-rw-r--r--Lib/xml/sax/saxutils.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py
index e592f2a..bf1f5f3 100644
--- a/Lib/xml/sax/saxutils.py
+++ b/Lib/xml/sax/saxutils.py
@@ -27,6 +27,27 @@ def escape(data, entities={}):
data = data.replace(chars, entity)
return data
+def quoteattr(data, entities={}):
+ """Escape and quote an attribute value.
+
+ Escape &, <, and > in a string of data, then quote it for use as
+ an attribute value. The \" character will be escaped as well, if
+ necessary.
+
+ 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 = escape(data, entities)
+ if '"' in data:
+ if "'" in data:
+ data = '"%s"' % data.replace('"', "&quot;")
+ else:
+ data = "'%s'" % data
+ else:
+ data = '"%s"' % data
+ return data
+
class XMLGenerator(handler.ContentHandler):