Getting attributes using minidom in Python, one uses the “attributes” property. e.g. node.attributes["id"].value
So if I have <a id="foo"></a>, that should give me "foo". node.attributes["id"] does not return the value of the named attribute, but an xml.dom.minidom.Attr instance.
But looking at the help for Attr, by doing help('xml.dom.minidom.Attr'), nowhere is this magic "value" property mentioned. I like to learn APIs by looking at the type hierarchy, instance methods etc. Where did this "value" property come from?? Why is it not listed in the Attr class’ page? The only data descriptors mentioned are isId, localName and schemaType. Its also not inherited from any superclasses. Since I’m new to Python, would some of the Python gurus enlighten?
The
minidomis just an implementation of thexml.dominterfaces, so any docs specifically on minidom will only be about its peculiarities or limitations wrtxml.domitself.The
xml.domdocs on Attr say, and I quote:The docs on Node actually name the attribute differently:
nodeValue. But, indeed…:The fact that the documented
nodeValueattribute has an _un_documented aliasvaluemay be considered unfortunate, but you can always stick with the documented, and therefore arguably right, attribute name,nodeValue. Yes, it’s verbose, but then so is all ofminidom, as well as slower than the excellent xml.etree.ElementTree (esp. in the latter’s C implementation,xml.etree.cElementTree), so presumably if you choose to useminidomit must be because you like extensive verbosity…;-).