Reading XML using Python minidom and iterating over each node
Element nodes don't have a nodeValue. You have to look at the Text nodes inside them. If you know there's always one text node inside you can say element.firstChild.data
(data is the same as nodeValue for text nodes).
Be careful: if there is no text content there will be no child Text nodes and element.firstChild
will be null, causing the .data
access to fail.
Quick way to get the content of direct child text nodes:
text= ''.join(child.data for child in element.childNodes if child.nodeType==child.TEXT_NODE)
In DOM Level 3 Core you get the textContent
property you can use to get text from inside an Element recursively, but minidom doesn't support this (some other Python DOM implementations do).