I'm new to using the xml libs. I'm trying to create xml pragmatically, but I'm finding an issue. I have two elements I'm creating using createElementNS two elements (soap:Envelope and context). Each having a different namespace. When I print the created xml, the namespace attribute gets moved from the context element to the envelope element. Is there a reason for this, and how can I get it to not do that?
Code: from xml.dom import implementation from xml.dom.ext import PrettyPrint namespace = 'http://www.w3.org/2003/05/soap-envelope' # create XML DOM document doc = implementation.createDocument(None, '', None) # create soap envelope element with namespaces soapenv = doc.createElementNS(namespace, "soap:Envelope") # add soap envelope element doc.appendChild(soapenv) # create header element header = doc.createElementNS(namespace, "soap:Header") context = doc.createElementNS("urn:zimbra", "context") context.appendChild(doc.createTextNode(' ')) header.appendChild(context) soapenv.appendChild(header) PrettyPrint(doc) What I'm getting as output: <?xml version='1.0' encoding='UTF-8'?> <soap:Envelope xmlns='urn:zimbra' xmlns:soap='http://www.w3.org/ 2003/05/soap-envelope'> <soap:Header> <context> </context> </soap:Header> </soap:Envelope> What I would expect <?xml version='1.0' encoding='UTF-8'?> <soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope'> <soap:Header> <context xmlns='urn:zimbra'> </context> </soap:Header> </soap:Envelope> -- http://mail.python.org/mailman/listinfo/python-list