mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
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
2 changed files with 14 additions and 12 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue