Some further examples of different approaches to reading an XML file. These examples use a different XML file (mut.xml) which is a simplified version of the file you need to parse.
#!/usr/bin/env python from xml.dom import minidom doc = minidom.parse("mut.xml") # doc.getElementsByTagName returns NodeList name = doc.getElementsByTagName("name")[0] print(name.firstChild.data) for mutation in doc.getElementsByTagName("mutation"): id = mutation.getAttribute("id") resnum = mutation.getElementsByTagName("resnum").item(0) substitution = mutation.getElementsByTagName("substitution").item(0) print("id: %s, resnum: %s, substitution: %s" % (id, resnum.firstChild.data, substitution.firstChild.data))
#!/usr/bin/env python from xml.dom import minidom doc = minidom.parse("mut.xml") # doc.getElementsByTagName returns NodeList name = doc.getElementsByTagName("name")[0] print(name.firstChild.data) for mutation in doc.getElementsByTagName("mutation"): id = mutation.getAttribute("id") resnum = mutation.getElementsByTagName("resnum")[0] substitution = mutation.getElementsByTagName("substitution")[0] print("id: %s, resnum: %s, substitution: %s" % (id, resnum.firstChild.data, substitution.firstChild.data))
#!/usr/bin/env python from xml.dom import minidom doc = minidom.parse("mut.xml") # doc.getElementsByTagName returns NodeList name = doc.getElementsByTagName("name")[0] print(name.firstChild.data) for mutation in doc.getElementsByTagName("mutation"): id = mutation.getAttribute("id") resnum = mutation.getElementsByTagName("resnum")[0].firstChild.data substitution = mutation.getElementsByTagName("substitution")[0].firstChild.data print("id: %s, resnum: %s, substitution: %s" % (id, resnum, substitution))
#!/usr/bin/env python from xml.dom import minidom doc = minidom.parse("mut.xml") for mutantsNode in doc.getElementsByTagName('mutants'): name = mutantsNode.getElementsByTagName("name")[0].firstChild.data print(name) for mutationNode in mutantsNode.getElementsByTagName("mutation"): id = mutationNode.getAttribute("id") for resnumNode in mutationNode.getElementsByTagName("resnum"): resnum = resnumNode.firstChild.data for substitutionNode in mutationNode.getElementsByTagName("substitution"): substitution = substitutionNode.firstChild.data print("id: %s, resnum: %s, substitution: %s" % (id, resnum, substitution))