OSDN Git Service

fix get_elements_by_class: correct when more than one classes are defined
[htmltree-py/htmltree.git] / htmltree.py
index a59fc25..0607eb0 100644 (file)
@@ -173,6 +173,13 @@ class HTMLElement(list):
         rn = TEXTRenderer()
         return rn.render_inner(self)
 
+    def get_classes(self):
+        "returns classes"
+        attr = self.get_attribute('class')
+        if attr == None:
+            return []
+        return attr.split()
+
     # navigation functions
     def parent(self):
         """returns tag's parent element."""
@@ -246,7 +253,7 @@ class HTMLElement(list):
         return buf
 
     def _r_get_elements_by_class(self, cls, buf):
-        if self.get_attribute("class") == cls:
+        if cls in self.get_classes():
             buf.append(self)
         for i in self:
             i._r_get_elements_by_class(cls, buf)