Python Minidom - how to iterate through attributes, and get their name and value
minidom, python, python-3.x
Solution
There is a short and efficient (and pythonic ?) way to do it easily
#since items() is a tUple list, you can go as follows :
for attrName, attrValue in element.attributes.items():
#do whatever you'd like
print "attribute %s = %s" % (attrName, attrValue)
If what you are trying to achieve is to transfer those inconvenient attribute `NamedNodeMap` to a more usable dictionary you can proceed as follows
#remember items() is a tUple list :
myDict = dict(element.attributes.items())
see http://docs.python.org/2/library/stdtypes.html#mapping-types-dict and more precisely example :
d = dict([('two', 2), ('one', 1), ('three', 3)])
Problem
I want to iterate through all attributes of a dom node and get the name and value I tried something like this (docs were not very verbose on this so I guessed a little): ``` for attr in element.attributes: attrName = attr.name attrValue = attr.value ``` - the for loop doesn't even start - how do I get the name and value of the attribute once I get the loop to work? Loop Error: ``` for attr in element.attributes: File "C:\Python32\lib\xml\dom\minidom.py", line 553, in __getitem__ return self._attrs[attname_or_tuple] KeyError: 0 ``` I'm new to Python, be gentle please