@@ -72,7 +72,6 @@ def cloneNode(self):
72
72
return element
73
73
74
74
class Comment (Element ):
75
-
76
75
def __init__ (self , data ):
77
76
self ._element = ElementTree .Comment (data )
78
77
self .name = None
@@ -87,20 +86,46 @@ def _setData(self, value):
87
86
data = property (_getData , _setData )
88
87
89
88
class DocumentType (Element ):
90
- pass
89
+ def __init__ (self , name ):
90
+ self ._element = ElementTree .Element (DocumentType )
91
+ self .text = "html"
91
92
92
93
class Document (Element ):
93
94
def __init__ (self ):
94
95
Element .__init__ (self , "" )
95
96
97
+ def testSerializer (element ):
98
+ print type (ElementTree .Comment )
99
+ rv = []
100
+ rv .append ("#document" )
101
+ def serializeElement (element , indent = 0 ):
102
+ if element .tag is DocumentType :
103
+ rv .append ("|%s<!DOCTYPE %s>" % (' ' * indent , element .text ))
104
+ elif element .tag is ElementTree .Comment :
105
+ rv .append ("|%s<!-- %s -->" % (' ' * indent , element .text ))
106
+ else :
107
+ rv .append ("|%s<%s>" % (' ' * indent , element .tag ))
108
+ if hasattr (element , "attrib" ):
109
+ for name , value in element .attrib .iteritems ():
110
+ rv .append ('|%s%s="%s"' % (' ' * (indent + 2 ), name , value ))
111
+ if element .text :
112
+ rv .append ("|%s\" %s\" " % (' ' * (indent + 2 ), element .text ))
113
+ indent += 2
114
+ for child in element .getchildren ():
115
+ serializeElement (child , indent )
116
+ if element .tail :
117
+ rv .append ("|%s\" %s\" " % (' ' * (indent - 2 ), element .tail ))
118
+ serializeElement (element )
119
+ return "\n " .join (rv )
120
+
96
121
class TreeBuilder (base .TreeBuilder ):
97
122
documentClass = Document
98
123
doctypeClass = DocumentType
99
124
elementClass = Element
100
125
commentClass = Comment
101
126
102
127
def testSerializer (self , element ):
103
- ElementTree . tostring (element )
128
+ return testSerializer (element )
104
129
105
130
def getDocument (self ):
106
- return self .document .getchildren ()[0 ]. _element
131
+ return self .document ._element . getchildren ()[0 ]
0 commit comments