Sure, here is the code In the code below, what I am doing is - I am opening an xml file and appending a node to the root document. Then I add this root document to the xml file fp = open (string.strip(self.cnfDtls.GetLogFilePath()), 'w') xml.dom.ext.PrettyPrint(doc, self.xmlFile) self.xmlFile.write("\n") fp.close().
So for each appending of node, the file is opened and the new root document with the appeneded node is re-written to the file. This is taking lot of time. Is there any way to append a node to the xml file without re-writing the file? Prasad.p.s. fp = open( string.strip(self.cnfDtls.GetLogFilePath()), 'r') doc = FromXmlStream(fp) ## else: ## print "File not available" ## print "The Doc is ", doc #### self.testcases.appendChild(doc.createTextNode("\n ")) ## print **************************************************************", doc top_nodeList = doc.getElementsByTagName("Logger") ## print "Hi", top_nodeList tc = doc.createElement("LogDetails") ## top_nodeList[0].appendChild(tc) tc.appendChild(doc.createTextNode("\n ")) i=0 for elements in self.firstPart: ln = doc.createElement(elements) if elements == "Steps": stepParts = self.parts[i] ## print "The Step Part is ", stepParts for index in range(len(stepParts)): step = stepParts[index] msgSent = step[0] msgRecd = step[1] timeout = step[2] stateMsg = step[3] stepNode = doc.createElement("Step") mvalueNode1 = doc.createElement("MessageSent") for msgIndex in range(len(msgSent)): ## stepNode.appendChild(mvalueNode1) keyL = msgSent[msgIndex].keys() for m in range(len(keyL)): keyNode1 = doc.createElement(keyL[m]) valL = msgSent[msgIndex][keyL[m]] if type(valL) == str: ## attNode0 = doc.createElement() keyNode1.appendChild(doc.createTextNode(valL)) ## mvalueNode1.appendChild(keyNode1) else: keysL = valL.keys() for n in range(len(keysL)): attNode1 = doc.createElement(keysL[n]) attNode1.appendChild(doc.createTextNode(valL[keysL[n]])) keyNode1.appendChild(attNode1) mvalueNode1.appendChild(keyNode1) stepNode.appendChild(mvalueNode1) mvalueNode2 = doc.createElement("MessageReceived") for msgIndex in range(len(msgRecd)): keyL = msgRecd[msgIndex].keys() for m in range(len(keyL)): keyNode2 = doc.createElement(keyL[m]) valL2 = msgRecd[msgIndex][keyL[m]] if type(valL2) == str: keyNode2.appendChild(doc.createTextNode(valL2)) ## mvalueNode2.appendChild(keyNode1) else: keysL = valL2.keys() for n in range(len(keysL)): attNode2 = doc.createElement(keysL[n]) attNode2.appendChild(doc.createTextNode(valL2[keysL[n]])) keyNode2.appendChild(attNode2) mvalueNode2.appendChild(keyNode2) stepNode.appendChild(mvalueNode2) timeoutNode = doc.createElement("TimeOut") timeoutNode.appendChild(doc.createTextNode(timeout)) stepNode.appendChild(timeoutNode) stateMsgNode = doc.createElement("StateMessage") stateMsgNode.appendChild(doc.createTextNode(stateMsg)) stepNode.appendChild(stateMsgNode) ln.appendChild(stepNode) else: ln.appendChild(doc.createTextNode(self.parts[i])) tc.appendChild(ln) tc.appendChild(doc.createTextNode("\n ")) i = i+1 t = doc.createTextNode("\n") top_nodeList[0].appendChild(tc) top_nodeList[0].appendChild(t) fp.close() fp = open (string.strip(self.cnfDtls.GetLogFilePath()), 'w') xml.dom.ext.PrettyPrint(doc, self.xmlFile) self.xmlFile.write("\n") fp.close() -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fredrik Lundh Sent: Friday, January 28, 2005 3:34 PM To: xml-sig@python.org Subject: [XML-SIG] Re: Could somebody help me? Prasad PS wrote: > I too have followed the second choice but what happened was, when I add > the root document to the xml file, I find the previous content and the < combination of the previous and the new content in the file and moreover > xml declarator is appearing twice. can you perhaps post a short snippet that illustrates the problem? is using a traditional DOM API an absolute requirement, btw? </F> _______________________________________________ XML-SIG maillist - XML-SIG@python.org http://mail.python.org/mailman/listinfo/xml-sig _______________________________________________ XML-SIG maillist - XML-SIG@python.org http://mail.python.org/mailman/listinfo/xml-sig