]> granicus.if.org Git - python/commitdiff
minidom: access attribute value before printing it
authorMartin v. Löwis <martin@v.loewis.de>
Fri, 6 Oct 2000 22:36:03 +0000 (22:36 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Fri, 6 Oct 2000 22:36:03 +0000 (22:36 +0000)
         correct order of constructor args in createAttributeNS
pulldom: use symbolic names for uri and localnames
         correct usage of createAttribute and setAttributeNode signatures.

Lib/xml/dom/minidom.py
Lib/xml/dom/pulldom.py

index 80771ad021160c740b8a4073eef4ea0efc10f1fd..7d610c6caf5b95093ac13f942b662c81ef325e3c 100644 (file)
@@ -331,7 +331,7 @@ class Element( Node ):
 
         for a_name in a_names:
             writer.write(" %s=\"" % a_name)
-            _write_data(writer, self._get_attributes()[a_name])
+            _write_data(writer, self._get_attributes()[a_name].value)
             writer.write("\"")
         if self.childNodes:
             writer.write(">")
@@ -429,7 +429,7 @@ class Document(Node):
 
     def createAttributeNS(self, namespaceURI, qualifiedName):
         prefix,localName = _nssplit(qualifiedName)
-        return Attr(namespaceURI, qualifiedName, localName, prefix)
+        return Attr(qualifiedName, namespaceURI, localName, prefix)
 
     def getElementsByTagNameNS(self, namespaceURI, localName):
         _getElementsByTagNameNSHelper(self, namespaceURI, localName)
index 9f93d6aa9de7a43fab811d72cb019a5f633ffd3d..f1e51269c8a4905a81de3fd070a6ba396b901357 100644 (file)
@@ -27,26 +27,28 @@ class PullDOM(xml.sax.ContentHandler):
         del self._ns_contexts[-1]
 
     def startElementNS(self, name, tagName , attrs):
-        if name[0]:
+        uri,localname = name
+        if uri:
             # When using namespaces, the reader may or may not
             # provide us with the original name. If not, create
             # *a* valid tagName from the current context.
             if tagName is None:
-                tagName = self._current_context[name[0]] + ":" + name[1]
-            node = self.document.createElementNS(name[0], tagName)
+                tagName = self._current_context[uri] + ":" + localname
+            node = self.document.createElementNS(uri, tagName)
         else:
             # When the tagname is not prefixed, it just appears as
-            # name[1]
-            node = self.document.createElement(name[1])
+            # localname
+            node = self.document.createElement(localname)
 
         for aname,value in attrs.items():
-            if aname[0]:
-                qname = self._current_context[name[0]] + ":" + aname[1]
-                attr = self.document.createAttributeNS(name[0], qname)
+            a_uri, a_localname = aname
+            if a_uri:
+                qname = self._current_context[a_uri] + ":" + a_localname
+                attr = self.document.createAttributeNS(a_uri, qname)
             else:
-                attr = self.document.createAttribute(name[0], name[1])
+                attr = self.document.createAttribute(a_localname)
             attr.value = value
-            node.setAttributeNode(qname, attr)
+            node.setAttributeNode(attr)
         
         parent = self.curNode
         node.parentNode = parent