diff Lib/html/parser.py @ 67189:3546ce1aa355 3.1

Merged revisions 87542 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r87542 | senthil.kumaran | 2010-12-28 23:55:16 +0800 (Tue, 28 Dec 2010) | 3 lines Fix Issue10759 - html.parser.unescape() fails on HTML entities with incorrect syntax ........
author Senthil Kumaran <orsenthil@gmail.com>
date Tue, 28 Dec 2010 16:10:56 +0000
parents 6144760e8350
children 829c541033ac 3c9232a684ae
line wrap: on
line diff
--- a/Lib/html/parser.py	Tue Dec 28 15:42:23 2010 +0000
+++ b/Lib/html/parser.py	Tue Dec 28 16:10:56 2010 +0000
@@ -367,13 +367,16 @@
             return s
         def replaceEntities(s):
             s = s.groups()[0]
-            if s[0] == "#":
-                s = s[1:]
-                if s[0] in ['x','X']:
-                    c = int(s[1:], 16)
-                else:
-                    c = int(s)
-                return chr(c)
+            try:
+                if s[0] == "#":
+                    s = s[1:]
+                    if s[0] in ['x','X']:
+                        c = int(s[1:], 16)
+                    else:
+                        c = int(s)
+                    return chr(c)
+            except ValueError:
+                return '&#'+ s +';'
             else:
                 # Cannot use name2codepoint directly, because HTMLParser
                 # supports apos, which is not part of HTML 4