summaryrefslogtreecommitdiff
path: root/bs4/builder/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'bs4/builder/__init__.py')
-rw-r--r--bs4/builder/__init__.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/bs4/builder/__init__.py b/bs4/builder/__init__.py
index 4c22b86..dc7deb9 100644
--- a/bs4/builder/__init__.py
+++ b/bs4/builder/__init__.py
@@ -157,7 +157,16 @@ class TreeBuilder(object):
# value is a whitespace-separated list of CSS
# classes. Split it into a list.
value = attrs[cdata_list_attr]
- values = whitespace_re.split(value)
+ if isinstance(value, basestring):
+ values = whitespace_re.split(value)
+ else:
+ # html5lib sometimes calls setAttributes twice
+ # for the same tag when rearranging the parse
+ # tree. On the second call the attribute value
+ # here is already a list. If this happens,
+ # leave the value alone rather than trying to
+ # split it again.
+ values = value
attrs[cdata_list_attr] = values
return attrs