Chenyun Yang added the comment:

handle_startendtag is also called for non-void elements, such as <a/>, so
the override example will break in those situation.

The compatible patch I proposed right now is just one liner checker:

# http://www.w3.org/TR/html5/syntax.html#void-elements
<https://www.google.com/url?q=http://www.w3.org/TR/html5/syntax.html%23void-elements&usg=AFQjCNFVtfyZ53NDOHlPq896qmX5b8fPTA>_VOID_ELEMENT_TAGS
= frozenset([    'area', 'base', 'br', 'col', 'embed', 'hr', 'img',
'input', 'keygen',    'link', 'meta', 'param', 'source', 'track',
'wbr'])class HTMLParser.HTMLParser:  # Internal -- handle starttag,
return end or -1 if not terminated  def parse_starttag(self, i):
#...    if end.endswith('/>'):      # XHTML-style empty tag: <span
attr="value" />      self.handle_startendtag(tag, attrs)
#############    PATCH    #################    elif end.endswith('>')
and tag in _VOID_ELEMENT_TAGS:      self.handle_startendtag(tag,
attrs)    #############    PATCH    #################

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25258>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to