Created
November 3, 2016 19:41
-
-
Save engineerball/b75856071353a5d615899b165a119bf2 to your computer and use it in GitHub Desktop.
extract node detail and matrix from graph xml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from xml.dom import minidom | |
| from signal import signal, SIGPIPE, SIG_DFL | |
| from sys import argv | |
| script, filename = argv | |
| signal(SIGPIPE,SIG_DFL) | |
| edge = [] | |
| xmldoc = minidom.parse(filename) | |
| itemlist = xmldoc.getElementsByTagName('node') | |
| print(len(itemlist)) | |
| f = open("%s-node-detail.csv" % filename,'w') | |
| f.write("node, betweenesscentrality, closenesscentrality\n") | |
| for node in itemlist: | |
| id = node.getAttribute("id") | |
| attritemlist = node.getElementsByTagName('attvalue') | |
| closenesscentrality = attritemlist[1].attributes['value'].value | |
| betweenesscentrality = attritemlist[2].attributes['value'].value | |
| f.write("%s, %s, %s\n" % (id, betweenesscentrality, closenesscentrality)) | |
| f.close() | |
| f = open("%s-matrix.txt" % filename, 'w') | |
| edgeitemlist = xmldoc.getElementsByTagName('edge') | |
| for node in edgeitemlist: | |
| edgesource = node.getAttribute("source") | |
| edgetarget = node.getAttribute("target") | |
| edge.append(edgesource) | |
| edge.append(edgetarget) | |
| edge = list(set(edge)) | |
| print(len(edge)) | |
| print(edge) | |
| f.write("%s\n" % edge) | |
| printed = False | |
| for source in edge: | |
| f.write("\n") | |
| for target in edge: | |
| for node in edgeitemlist: | |
| edgesource = node.getAttribute("source") | |
| edgetarget = node.getAttribute("target") | |
| if edgesource == source and edgetarget == target: | |
| f.write("1 ") | |
| printed = True | |
| if printed != True: | |
| f.write("0 ") | |
| printed = False | |
| f.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment