OSDN Git Service

add __eq__() to HTMLElement
[htmltree-py/htmltree.git] / htmltree.py
index 0678a11..a98c0e0 100644 (file)
@@ -99,6 +99,9 @@ class HTMLElement(list):
         else:
             return "<UNKNOWN>"
 
+    def __eq__(self, other):
+        return id(self) == id(other)
+
     def _attrs2str(self):
         str = []
         f = lambda x,y: x if y == None else "%s='%s'" % (x,y)
@@ -170,6 +173,17 @@ class HTMLElement(list):
         for i in self:
             i._r_get_elements_by_class(cls, buf)
 
+    def get_elements(self, name, attrs):
+        elems = self.get_elements_by_name(name)
+        results = []
+        for elem in elems:
+            for name in attrs:
+                if elem.get_attribute(name, "") != attrs[name]:
+                    break
+            else:
+                results.append(elem)
+        return results
+
     # manipulation functions
     def append_tag(self, tag, attrs):
         elem = HTMLElement(HTMLElement.TAG, tag, attrs)