Reading XML using Python minidom and iterating over each node

minidom, parsing, python, xml

Solution

your `authortext` is of type 1 (`ELEMENT_NODE`), normally you need to have `TEXT_NODE` to get a string. This will work

a.childNodes[0].nodeValue

Problem

I have an XML structure that looks like the following, but on a much larger scale: ``` <root> <conference name='1'> <author> Bob </author> <author> Nigel </author> </conference> <conference name='2'> <author> Alice </author> <author> Mary </author> </conference> </root> ``` For this, I used the following code: ``` dom = parse(filepath) conference=dom.getElementsByTagName('conference') for node in conference: conf_name=node.getAttribute('name') print conf_name alist=node.getElementsByTagName('author') for a in alist: authortext= a.nodeValue print authortext ``` However, the authortext that is printed out is 'None.' I tried messing around with using variations like what is below, but it causes my program to break. ``` authortext=a[0].nodeValue ``` The correct output should be: ``` 1 Bob Nigel 2 Alice Mary ``` But what I get is: ``` 1 None None 2 None None ``` Any suggestions on how to tackle this problem?

Original source