Sjoerd patches the previous patch:
In literal mode, also don't do anything about entity and character
references, or about closing CDATA elements.
diff --git a/Lib/xmllib.py b/Lib/xmllib.py
index 4e62ae5..bea210b 100644
--- a/Lib/xmllib.py
+++ b/Lib/xmllib.py
@@ -264,6 +264,11 @@
i = k
continue
elif rawdata[i] == '&':
+ if self.literal:
+ data = rawdata[i]
+ self.handle_data(data)
+ i = i+1
+ continue
res = charref.match(rawdata, i)
if res is not None:
i = res.end(0)
@@ -292,6 +297,11 @@
self.lineno = self.lineno + string.count(res.group(0), '\n')
continue
elif rawdata[i] == ']':
+ if self.literal:
+ data = rawdata[i]
+ self.handle_data(data)
+ i = i+1
+ continue
if n-i < 3:
break
if cdataclose.match(rawdata, i):