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.
This commit is contained in:
parent
80670bcaba
commit
2c8a89cc3f
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue