@@ -22,17 +22,22 @@ def normalizeAttrs(self, attrs):
2222 return [(unicode (name ),unicode (value )) for name ,value in attrs ]
2323
2424 def emptyTag (self , name , attrs , hasChildren = False ):
25- yield {"type" : "EmptyTag" , "name" : unicode (name ), \
26- "data" : self .normalizeAttrs (attrs )}
25+ yield {"type" : "EmptyTag" , "name" : unicode (name ),
26+ "data" : self .normalizeAttrs (attrs )}
2727 if hasChildren :
2828 yield self .error (_ ("Void element has children" ))
2929
30- def startTag (self , name , attrs ):
31- return {"type" : "StartTag" , "name" : unicode (name ), \
32- "data" : self .normalizeAttrs (attrs )}
30+ def startTag (self , namespace , name , attrs ):
31+ return {"type" : "StartTag" ,
32+ "name" : unicode (name ),
33+ "namespace" :unicode (namespace ),
34+ "data" : self .normalizeAttrs (attrs )}
3335
34- def endTag (self , name ):
35- return {"type" : "EndTag" , "name" : unicode (name ), "data" : []}
36+ def endTag (self , namespace , name ):
37+ return {"type" : "EndTag" ,
38+ "name" : unicode (name ),
39+ "namespace" :unicode (namespace )
40+ "data" : []}
3641
3742 def text (self , data ):
3843 data = unicode (data )
@@ -64,9 +69,9 @@ class RecursiveTreeWalker(TreeWalker):
6469 def walkChildren (self , node ):
6570 raise NodeImplementedError
6671
67- def element (self , node , name , attrs , hasChildren ):
72+ def element (self , node , namespace , name , attrs , hasChildren ):
6873 if name in voidElements :
69- for token in self .emptyTag (name , attrs , hasChildren ):
74+ for token in self .emptyTag (namespace , name , attrs , hasChildren ):
7075 yield token
7176 else :
7277 yield self .startTag (name , attrs )
@@ -113,14 +118,14 @@ def __iter__(self):
113118 yield token
114119
115120 elif type == ELEMENT :
116- name , attributes , hasChildren = details
121+ namespace , name , attributes , hasChildren = details
117122 if name in voidElements :
118- for token in self .emptyTag (name , attributes , hasChildren ):
123+ for token in self .emptyTag (namespace , name , attributes , hasChildren ):
119124 yield token
120125 hasChildren = False
121126 else :
122127 endTag = name
123- yield self .startTag (name , attributes )
128+ yield self .startTag (namespace , name , attributes )
124129
125130 elif type == COMMENT :
126131 yield self .comment (details [0 ])
@@ -143,7 +148,7 @@ def __iter__(self):
143148 details = self .getNodeDetails (currentNode )
144149 type , details = details [0 ], details [1 :]
145150 if type == ELEMENT :
146- name , attributes , hasChildren = details
151+ namespace , name , attributes , hasChildren = details
147152 if name not in voidElements :
148153 yield self .endTag (name )
149154 nextSibling = self .getNextSibling (currentNode )
0 commit comments