Ignore unparsable CSS in @style attributes.

This commit is contained in:
Marshall T. Vandegrift 2009-02-07 15:49:45 -05:00
parent 3c402a26b0
commit f65418b92f

View File

@ -17,6 +17,7 @@ import types
import re import re
import copy import copy
from itertools import izip from itertools import izip
from xml.dom import SyntaxErr as CSSSyntaxError
import cssutils import cssutils
from cssutils.css import CSSStyleRule, CSSPageRule, CSSStyleDeclaration, \ from cssutils.css import CSSStyleRule, CSSPageRule, CSSStyleDeclaration, \
CSSValueList, cssproperties CSSValueList, cssproperties
@ -291,10 +292,14 @@ class Style(object):
def _apply_style_attr(self): def _apply_style_attr(self):
attrib = self._element.attrib attrib = self._element.attrib
if 'style' in attrib: if 'style' not in attrib:
return
css = attrib['style'].split(';') css = attrib['style'].split(';')
css = filter(None, map(lambda x: x.strip(), css)) css = filter(None, (x.strip() for x in css))
try:
style = CSSStyleDeclaration('; '.join(css)) style = CSSStyleDeclaration('; '.join(css))
except CSSSyntaxError:
return
self._style.update(self._stylizer.flatten_style(style)) self._style.update(self._stylizer.flatten_style(style))
def _has_parent(self): def _has_parent(self):