summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-08-07 19:14:46 (GMT)
committerFred Drake <fdrake@acm.org>2001-08-07 19:14:46 (GMT)
commitdad91dd1e90222cfae4543eb290e2b2fa99192c2 (patch)
tree9982a888d19d88a0b6ce6bd7bec00b29d50e3e68
parent288cd2cb69dc61d3fe1b18564d62ddb280a6568a (diff)
downloadcpython-dad91dd1e90222cfae4543eb290e2b2fa99192c2.zip
cpython-dad91dd1e90222cfae4543eb290e2b2fa99192c2.tar.gz
cpython-dad91dd1e90222cfae4543eb290e2b2fa99192c2.tar.bz2
Make sure XMLGenerator uses quoteattr() instead of escape() to quote
attribute values. Just using escape() can (and always has) led to broken XML being generated. This makes sure it always produces the right thing. This actually closes SF bug #440351.
-rw-r--r--Lib/xml/sax/saxutils.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py
index bf1f5f3..8a96be6 100644
--- a/Lib/xml/sax/saxutils.py
+++ b/Lib/xml/sax/saxutils.py
@@ -80,7 +80,7 @@ class XMLGenerator(handler.ContentHandler):
def startElement(self, name, attrs):
self._out.write('<' + name)
for (name, value) in attrs.items():
- self._out.write(' %s="%s"' % (name, escape(value)))
+ self._out.write(' %s=%s' % (name, quoteattr(value)))
self._out.write('>')
def endElement(self, name):
@@ -101,7 +101,7 @@ class XMLGenerator(handler.ContentHandler):
for (name, value) in attrs.items():
name = self._current_context[name[0]] + ":" + name[1]
- self._out.write(' %s="%s"' % (name, escape(value)))
+ self._out.write(' %s=%s' % (name, quoteattr(value)))
self._out.write('>')
def endElementNS(self, name, qname):