diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2000-10-06 22:36:03 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2000-10-06 22:36:03 (GMT) |
commit | 2c8a89cc3f141f574982b66383c533e7ecbe4aac (patch) | |
tree | d4607b60d442682ec54433daad215a1c5c4de8c9 /Lib/xml/dom | |
parent | 80670bcabaf071bfe9131f3907b44632a672f9cb (diff) | |
download | cpython-2c8a89cc3f141f574982b66383c533e7ecbe4aac.zip cpython-2c8a89cc3f141f574982b66383c533e7ecbe4aac.tar.gz cpython-2c8a89cc3f141f574982b66383c533e7ecbe4aac.tar.bz2 |
minidom: access attribute value before printing it
correct order of constructor args in createAttributeNS
pulldom: use symbolic names for uri and localnames
correct usage of createAttribute and setAttributeNode signatures.
Diffstat (limited to 'Lib/xml/dom')
-rw-r--r-- | Lib/xml/dom/minidom.py | 4 | ||||
-rw-r--r-- | Lib/xml/dom/pulldom.py | 22 |
2 files changed, 14 insertions, 12 deletions
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index 80771ad..7d610c6 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -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) diff --git a/Lib/xml/dom/pulldom.py b/Lib/xml/dom/pulldom.py index 9f93d6a..f1e5126 100644 --- a/Lib/xml/dom/pulldom.py +++ b/Lib/xml/dom/pulldom.py @@ -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 |