@@ -80,9 +80,11 @@ def hilite(self, encoding):
80
80
setattr (self .dom , 'hilite' , method )
81
81
return self
82
82
83
- def doctypeClass (self ,name ):
83
+ def insertDoctype (self , name ):
84
84
domimpl = minidom .getDOMImplementation ()
85
- return NodeBuilder (domimpl .createDocumentType (name ,None ,None ))
85
+ doctype = domimpl .createDocumentType (name ,None ,None )
86
+ self .document .appendChild (NodeBuilder (doctype ))
87
+ doctype .ownerDocument = self .dom
86
88
87
89
def elementClass (self , name ):
88
90
return NodeBuilder (self .dom .createElement (name ))
@@ -126,8 +128,8 @@ def serializeElement(element, indent=0):
126
128
if element .nodeType == Node .DOCUMENT_TYPE_NODE :
127
129
rv .append ("|%s<!DOCTYPE %s>" % (' ' * indent , element .name ))
128
130
elif element .nodeType == Node .DOCUMENT_NODE :
129
- rv .append ("#document" )
130
- elif element .nodeType == Node .DOCUMENT_FRAGMENT_NODE :
131
+ rv .append ("#document" )
132
+ elif element .nodeType == Node .DOCUMENT_FRAGMENT_NODE :
131
133
rv .append ("#document-fragment" )
132
134
elif element .nodeType == Node .COMMENT_NODE :
133
135
rv .append ("|%s<!-- %s -->" % (' ' * indent , element .nodeValue ))
@@ -215,10 +217,10 @@ def dom2sax(node, handler, nsmap={'xml':XML_NAMESPACE}):
215
217
elif node .nodeType == Node .DOCUMENT_NODE :
216
218
handler .startDocument ()
217
219
for child in node .childNodes : dom2sax (child , handler , nsmap )
218
- handler .endDocument ()
219
-
220
- elif node .nodeType == Node .DOCUMENT_FRAGMENT_NODE :
221
- for child in node .childNodes : dom2sax (child , handler , nsmap )
220
+ handler .endDocument ()
221
+
222
+ elif node .nodeType == Node .DOCUMENT_FRAGMENT_NODE :
223
+ for child in node .childNodes : dom2sax (child , handler , nsmap )
222
224
223
225
else :
224
226
# ATTRIBUTE_NODE
0 commit comments