From a06152365c336f41bdb5fb9513b9316740c1564a Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Wed, 15 Feb 2012 14:27:21 -0500 Subject: Some cdata-list attributes are only cdata lists for certain tags. --- bs4/element.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bs4/element.py') diff --git a/bs4/element.py b/bs4/element.py index 5e15252..c6a7823 100644 --- a/bs4/element.py +++ b/bs4/element.py @@ -1,4 +1,5 @@ import collections +import itertools import re import sys import warnings @@ -524,7 +525,10 @@ class Tag(PageElement): else: attrs = dict(attrs) if builder.cdata_list_attributes: - for cdata_list_attr in builder.cdata_list_attributes: + universal = builder.cdata_list_attributes.get('*', []) + tag_specific = builder.cdata_list_attributes.get( + self.name.lower(), []) + for cdata_list_attr in itertools.chain(universal, tag_specific): if cdata_list_attr in attrs: # Basically, we have a "class" attribute whose # value is a whitespace-separated list of CSS -- cgit v1.2.3