• R/O
  • HTTP
  • SSH
  • HTTPS

htmltree: 提交

メインリポジトリ


Commit MetaInfo

修订版3a17d1c05da239c63cec678f8e139ecfa60d8a25 (tree)
时间2011-07-21 17:29:33
作者Hiromichi MATSUSHIMA <hirom@offi...>
CommiterHiromichi MATSUSHIMA

Log Message

add SGML declare handler

更改概述

差异

--- a/htmltree.py
+++ b/htmltree.py
@@ -60,13 +60,15 @@ class HTMLRenderer(Renderer):
6060 elif elem.is_root():
6161 for child in elem:
6262 self._recursive(child, texts)
63-
63+ elif elem.is_decl():
64+ texts.append("<!" + elem.name + ">")
6465
6566 class HTMLElement(list):
6667 """HTML element object to use as tree nodes."""
6768 ROOT = 0
6869 TAG = 100
6970 TEXT = 200
71+ DECL = 300
7072
7173 def __init__(self, type, name="", attrs={}):
7274 """
@@ -94,6 +96,8 @@ class HTMLElement(list):
9496 def __repr__(self):
9597 if self.type == HTMLElement.TAG:
9698 return "<TAG:%s %s>" % (self.name, self._attrs2str())
99+ elif self.type == HTMLElement.DECL:
100+ return "<DECL:'%s'>" % self.name
97101 elif self.type == HTMLElement.TEXT:
98102 return "<TEXT:'%s'>" % self._text
99103 else:
@@ -244,6 +248,9 @@ class HTMLElement(list):
244248 def is_root(self):
245249 return self.type == HTMLElement.ROOT
246250
251+ def is_decl(self):
252+ return self.type == HTMLElement.DECL
253+
247254 def is_descendant(self, tagname):
248255 p = self.parent()
249256 while p != None:
@@ -408,6 +415,11 @@ class HTMLTree(HTMLParser.HTMLParser):
408415 elem._text = data
409416 self._cursor.append(elem)
410417
418+ def handle_decl(self, decl):
419+ elem = HTMLElement(HTMLElement.DECL, decl)
420+ elem._parent = self._cursor
421+ self._cursor.append(elem)
422+
411423 # Accessor
412424 def root(self):
413425 return self._htmlroot
Show on old repository browser