PageSourceSearch

https://foldingspace.github.io/enfolding/js/graph-io.js

js foldingspace.github.io collected 2026-10-03 09:12:30 UTC 3,990 bytes, 127 lines download raw bytes

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.