From 62aaf6cb88432352796f655372c8117161145c3c Mon Sep 17 00:00:00 2001 From: Reed Moran Date: Wed, 21 Jan 2009 15:49:28 +0000 Subject: [PATCH] updates for my bad syntax --- rspec/parse2.py | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 rspec/parse2.py diff --git a/rspec/parse2.py b/rspec/parse2.py new file mode 100644 index 00000000..cff1db1d --- /dev/null +++ b/rspec/parse2.py @@ -0,0 +1,74 @@ +import xml.dom.minidom + +sample_xml_file = 'sample_rspec.xml' +f = open(sample_xml_file, 'r') +lines = f.readlines() +xml = "" +for line in lines: + xml += line.replace('\n', '',).repalce('\t', '').strip() + +dom = xml.dom.minidom.parseString(xml) + +def getText(nodelist): + rc = "" + for node in nodelist: + if node.nodeType == node.TEXT_NODE: + rc = rc + node.data + return rc + +def handleRspec(rspec): + # create rspec dict + rdict = {} + tempdict = {} + # loop through each network element + for i in rspec.getElementsByTagName("NetSpec"): + # handle networks call + tempdic[i] = (handleNetworks(rspec.getElementsByTagName("NetSpec")[i])) + # append the temp dict + rdict['networks'] = tempdic + return rdict + +def handleIfs(interf): + # create if dict + ifdict = {} + # loop through attribs and put key value pair into array + for i in interf.attributes: + a = node.attributes[i] + ifdict.append({a.name:a.value}) + + return ifdict + +def handleNodes(node): + # create node dict + nodict = {} + # loop through attribs and put key value pair into array + for i in node.attributes: + a = node.attributes[i] + nodict[a.name] = a.value + + # loop through each IF element + for i in node.getElementsByTagName("IfSpec"): + # handle ifs + tempd[i] = handleIfs(node.getElementByTagName("IfSpec")[i]) + # append temp dict + nodict['ifs'] = tempd + return nodict + +def handleNetworks(network): + # create network dict + ndict = {'name':network.nodeName} + # loop through each node element + for i in network.getElementsByTagName: + # handle nodes + tempdict[i] = handleNodes(network.getElementsByTagName("NodeSpec")[i]) + # append temp dict + ndict['nodes'] = tempdict + return ndict + +def handleTest(slices): + for slide in slices: + sdict = slice.getElementsByTagName("slices")[0] + print "

%s

" % getText(slice.childNodes) + +handleRspec(dom) + -- 2.47.0