Parsing xml using xml.dom.minidom
never was a fun (really think about using BeautifulSoup, xml.etree.ElementTree or lxml).
Here's where you should start:
from pprint import pprint
from xml.dom.minidom import parse, Text, parseString
data = """your xml goes here"""
dom = parseString(data)
result = {}
effect = dom.getElementsByTagName('effect')[0]
result['name'] = effect.getElementsByTagName('name')[0].firstChild.nodeValue
parameters = []
for parameter in effect.getElementsByTagName('parameter'):
id = parameter.getElementsByTagName('parameterid')[0].firstChild.nodeValue
name = parameter.getElementsByTagName('name')[0].firstChild.nodeValue
value = parameter.getElementsByTagName('value')[0].firstChild.nodeValue
parameters.append({'id': id, 'name': name, 'value': value})
result['parameters'] = parameters
pprint(result)
Prints:
{'name': u'Text',
'parameters': [{'id': u'str', 'name': u'Text', 'value': u'Everyone listen up.'},
{'id': u'fontname', 'name': u'Font', 'value': u'Arial'},
{'id': u'fontsize', 'name': u'Size', 'value': u'20'},
{'id': u'fontstyle', 'name': u'Style', 'value': u'1'}]}