1// comment 2// testing 3 4function GraphXMLfromString(xmlString) { 5 // 6 console.log("XML data seen: "+xmlString); 7 8 parser = new DOMParser(); 9 xmlDoc = parser.parseFromString(xmlString,"text/xml"); 10 11 // get the keys 12 13 console.log("KEYS:"); 14 var keychildren = xmlDoc.getElementsByTagName('key'); 15 console.log('keychildren has this number of elements: '+keychildren.length); 16 console.log(keychildren); 17 18 var keyid, fortype, attrtype; 19 var keys = {}; 20 for (var i = 0; i < keychildren.length; i++) { 21 keyid = keychildren[i].getAttribute('id'); 22 fortype = keychildren[i].getAttribute('for'); 23 attrname = keychildren[i].getAttribute('attr.name'); 24 keys[keyid] = {'for': fortype, 'attrname': attrname}; 25 console.log(keyid + ', ' + fortype + ', ' + attrname); 26 }; 27 28 29 // parse nodes 30 31 console.log("NODES:"); 32 var nodechildren = xmlDoc.getElementsByTagName('node'); 33 var datachildren; 34 var nodes = {}; 35 for (var currnode = 0; currnode < nodechildren.length; currnode++) { 36 nodeid = nodechildren[currnode].getAttribute('id'); 37 datachildren = nodechildren[currnode].getElementsByTagName('data'); 38 var current_node = {}; 39 for (var currdata = 0; currdata < datachildren.length; currdata++) { 40 keyid = datachildren[currdata].getAttribute('key'); 41 keycontent = datachildren[currdata].childNodes[0].nodeValue; 42 console.log("Node " + nodeid + " has key " + keys[keyid].attrname + ' of ' + keycontent); 43 current_node[keys[keyid].attrname] = keycontent; 44 }; 45 nodes[nodeid] = current_node; 46 }; 47 console.log(nodes); 48 49 // add the nodes to enfolding 50 51 // parse edges 52 53 console.log("EDGES:"); 54 var edgechildren = xmlDoc.getElementsByTagName('edge'); 55 var datachildren; 56 var edges = {}; 57 for (var curredge = 0; curredge < edgechildren.length; curredge++) { 58 edgeid = edgechildren[curredge].getAttribute('id'); 59 edgesource = edgechildren[curredge].getAttribute('source'); 60 edgetarget = edgechildren[curredge].getAttribute('target'); 61 datachildren = edgechildren[curredge].getElementsByTagName('data'); 62 var current_edge = {'source': edgesource, 'target':edgetarget}; 63 for (var currdata = 0; currdata < datachildren.length; currdata++) { 64 keyid = datachildren[currdata].getAttribute('key'); 65 keycontent = datachildren[currdata].childNodes[0].nodeValue; 66 console.log("Edge " + edgeid + " has key " + keys[keyid].attrname + ' of ' + keycontent); 67 current_edge[keys[keyid].attrname] = keycontent; 68 }; 69 edges[edgeid] = current_edge; 70 }; 71 console.log(edges); 72}; 73 74 75 // add edges to enfolding 76 77 78 79/* 80 81function XMLnotfound(myerror){ 82 console.log("loadXML current error is: " + myerror) 83} 84 85function XMLfound(myXML){ 86 console.log("loadXML worked with value: " + myXML) 87} 88 89function inputGraphXML(xmlURI){ 90 // 91 console.log("XML URI to load: "+xmlURI) 92 var xml = myp5.loadXML(xmlURI,XMLfound,XMLnotfound); 93 94 95 // get the keys 96 var keychildren = xml.getChildren('key'); 97 var keyid, fortype, attrtype; 98 var keys = {}; 99 for (var i = 0; i < keychildren.length; i++) { 100 keyid = keychildren[i].getString('id'); 101 fortype = keychildren[i].getString('for'); 102 attrname = keychildren[i].getString('attr.name'); 103 keys[keyid] = {'for': fortype, 'attrname': attrname} 104 console.log(keyid + ', ' + fortype + ', ' + attrtype); 105 } 106 107 // parse nodes 108 var nodechildren = xml.getChildren('node'); 109 var datachildren; 110 for (var currnode = 0; currnode < nodechildren.length; currnode++) { 111 datachildren = nodechildren[currnode].getChildren('data'); 112 for (var currdata = 0; currdata < datachildren.length; currdata++) { 113 keyid = datachildren[currdata].getString('key'); 114 keycontent = datachildren[currdata].getContent(); 115 console.log("Node " + currnode + " has key " + keyid + ' of ' + keycontent); 116 console.log("Node " + currnode + " has key " + keys[keyid] + ' is ' + keycontent) 117 } 118 } 119 120 // add the nodes to enfolding 121 122 // parse edges 123 124 // add edges to enfolding 125 126} 127*/
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.