@@ -10,6 +10,7 @@ def __init__(self, name):
10
10
self ._element = ElementTree .Element (name )
11
11
self .name = name
12
12
self .parent = None
13
+ self ._childNodes = []
13
14
self ._flags = []
14
15
15
16
#Set the element text and tail to the empty string rather than None
@@ -38,7 +39,19 @@ def _setAttributes(self, attributes):
38
39
39
40
attributes = property (_getAttributes , _setAttributes )
40
41
42
+ def _getChildNodes (self ):
43
+ return self ._childNodes
44
+
45
+ def _setChildNodes (self , value ):
46
+ del self ._element [:]
47
+ self ._childNodes = []
48
+ for element in value :
49
+ self .insertChild (element )
50
+
51
+ childNodes = property (_getChildNodes , _setChildNodes )
52
+
41
53
def appendChild (self , node ):
54
+ self ._childNodes .append (node )
42
55
self ._element .append (node ._element )
43
56
node .parent = self
44
57
@@ -64,7 +77,7 @@ def insertText(self, data, insertBefore=None):
64
77
if index > 0 :
65
78
self ._element [index - 1 ].tail += data
66
79
else :
67
- self .text += data
80
+ self ._element . text += data
68
81
69
82
def cloneNode (self ):
70
83
element = Element (self .name )
@@ -88,14 +101,13 @@ def _setData(self, value):
88
101
class DocumentType (Element ):
89
102
def __init__ (self , name ):
90
103
self ._element = ElementTree .Element (DocumentType )
91
- self .text = "html"
104
+ self ._element . text = "html"
92
105
93
106
class Document (Element ):
94
107
def __init__ (self ):
95
108
Element .__init__ (self , "" )
96
109
97
110
def testSerializer (element ):
98
- print type (ElementTree .Comment )
99
111
rv = []
100
112
rv .append ("#document" )
101
113
def serializeElement (element , indent = 0 ):
@@ -115,7 +127,7 @@ def serializeElement(element, indent=0):
115
127
serializeElement (child , indent )
116
128
if element .tail :
117
129
rv .append ("|%s\" %s\" " % (' ' * (indent - 2 ), element .tail ))
118
- serializeElement (element )
130
+ serializeElement (element , 2 )
119
131
return "\n " .join (rv )
120
132
121
133
class TreeBuilder (base .TreeBuilder ):
0 commit comments