diff options
author | Fred Drake <fdrake@acm.org> | 2001-07-19 16:10:15 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2001-07-19 16:10:15 (GMT) |
commit | acd32d3be542987078c65a8a34d7844cfa7ebbe8 (patch) | |
tree | e3ff8c129dd9cc8d18a9cdf06b0fab20943554bb /Lib/xml/sax | |
parent | 3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3 (diff) | |
download | cpython-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/sax')
-rw-r--r-- | Lib/xml/sax/saxutils.py | 21 |
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('"', """) + else: + data = "'%s'" % data + else: + data = '"%s"' % data + return data + class XMLGenerator(handler.ContentHandler): |