elif elem.is_root():
for child in elem:
self._recursive(child, texts)
-
+ elif elem.is_decl():
+ texts.append("<!" + elem.name + ">")
class HTMLElement(list):
"""HTML element object to use as tree nodes."""
ROOT = 0
TAG = 100
TEXT = 200
+ DECL = 300
def __init__(self, type, name="", attrs={}):
"""
def __repr__(self):
if self.type == HTMLElement.TAG:
return "<TAG:%s %s>" % (self.name, self._attrs2str())
+ elif self.type == HTMLElement.DECL:
+ return "<DECL:'%s'>" % self.name
elif self.type == HTMLElement.TEXT:
return "<TEXT:'%s'>" % self._text
else:
def is_root(self):
return self.type == HTMLElement.ROOT
+ def is_decl(self):
+ return self.type == HTMLElement.DECL
+
def is_descendant(self, tagname):
p = self.parent()
while p != None:
elem._text = data
self._cursor.append(elem)
+ def handle_decl(self, decl):
+ elem = HTMLElement(HTMLElement.DECL, decl)
+ elem._parent = self._cursor
+ self._cursor.append(elem)
+
# Accessor
def root(self):
return self._htmlroot