[Python-checkins] CVS: python/dist/src/Lib/xml/dom pulldom.py,1.8,1.9

Lars Marius Garshol python-dev@python.org
Wed, 11 Oct 2000 15:34:07 -0700


Update of /cvsroot/python/python/dist/src/Lib/xml/dom
In directory slayer.i.sourceforge.net:/tmp/cvs-serv29462

Modified Files:
	pulldom.py 
Log Message:
Added non-ns start and end element methods.
Moved appendChild calls from DOMEventStream to PullDOM (parser indep).
Removed duplicated sibling pointer setting (duplicated in appendChild).


Index: pulldom.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/xml/dom/pulldom.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** pulldom.py	2000/10/06 22:36:03	1.8
--- pulldom.py	2000/10/11 22:34:04	1.9
***************
*** 52,59 ****
          
          parent = self.curNode
          node.parentNode = parent
-         if parent.childNodes:
-             node.previousSibling = parent.childNodes[-1]
-             node.previousSibling.nextSibling = node
          self.curNode = node
  
--- 52,57 ----
          
          parent = self.curNode
+         parent.appendChild(node)
          node.parentNode = parent
          self.curNode = node
  
***************
*** 69,79 ****
          self.curNode = node.parentNode
  
      def comment(self, s):
          node = self.document.createComment(s)
          parent = self.curNode
          node.parentNode = parent
-         if parent.childNodes:
-             node.previousSibling = parent.childNodes[-1]
-             node.previousSibling.nextSibling = node
          self.lastEvent[1] = [(COMMENT, node), None]
          self.lastEvent = self.lastEvent[1]
--- 67,99 ----
          self.curNode = node.parentNode
  
+     def startElement(self, name, attrs):
+         node = self.document.createElement(name)
+ 
+         for aname,value in attrs.items():
+             attr = self.document.createAttribute(aname)
+             attr.value = value
+             node.setAttributeNode(attr)
+         
+         parent = self.curNode
+         parent.appendChild(node)
+         node.parentNode = parent
+         self.curNode = node
+ 
+         self.lastEvent[1] = [(START_ELEMENT, node), None]
+         self.lastEvent = self.lastEvent[1]
+         #self.events.append((START_ELEMENT, node))
+ 
+     def endElement(self, name):
+         node = self.curNode
+         self.lastEvent[1] = [(END_ELEMENT, node), None]
+         self.lastEvent = self.lastEvent[1]
+         #self.events.append((END_ELEMENT, node))
+         self.curNode = node.parentNode
+         
      def comment(self, s):
          node = self.document.createComment(s)
          parent = self.curNode
+         parent.appendChild(node)
          node.parentNode = parent
          self.lastEvent[1] = [(COMMENT, node), None]
          self.lastEvent = self.lastEvent[1]
***************
*** 82,92 ****
      def processingInstruction(self, target, data):
          node = self.document.createProcessingInstruction(target, data)
-         #self.appendChild(node)
          
          parent = self.curNode
          node.parentNode = parent
-         if parent.childNodes:
-             node.previousSibling = parent.childNodes[-1]
-             node.previousSibling.nextSibling = node
          self.lastEvent[1] = [(PROCESSING_INSTRUCTION, node), None]
          self.lastEvent = self.lastEvent[1]
--- 102,109 ----
      def processingInstruction(self, target, data):
          node = self.document.createProcessingInstruction(target, data)
          
          parent = self.curNode
+         parent.appendChild(node)
          node.parentNode = parent
          self.lastEvent[1] = [(PROCESSING_INSTRUCTION, node), None]
          self.lastEvent = self.lastEvent[1]
***************
*** 96,103 ****
          node = self.document.createTextNode(chars[start:start + length])
          parent = self.curNode
          node.parentNode = parent
-         if parent.childNodes:
-             node.previousSibling = parent.childNodes[-1]
-             node.previousSibling.nextSibling = node
          self.lastEvent[1] = [(IGNORABLE_WHITESPACE, node), None]
          self.lastEvent = self.lastEvent[1]
--- 113,118 ----
          node = self.document.createTextNode(chars[start:start + length])
          parent = self.curNode
+         parent.appendChild(node)
          node.parentNode = parent
          self.lastEvent[1] = [(IGNORABLE_WHITESPACE, node), None]
          self.lastEvent = self.lastEvent[1]
***************
*** 106,110 ****
      def characters(self, chars):
          node = self.document.createTextNode(chars)
!         node.parentNode = self.curNode
          self.lastEvent[1] = [(CHARACTERS, node), None]
          self.lastEvent = self.lastEvent[1]
--- 121,127 ----
      def characters(self, chars):
          node = self.document.createTextNode(chars)
!         parent = self.curNode
!         parent.appendChild(node)
!         node.parentNode = parent
          self.lastEvent[1] = [(CHARACTERS, node), None]
          self.lastEvent = self.lastEvent[1]
***************
*** 161,166 ****
              if cur_node is node:
                  return
-             if token != END_ELEMENT:
-                 cur_node.parentNode.appendChild(cur_node)
              event = self.getEvent()
  
--- 178,181 ----