public static NetworkData CreateFromTextFile(string file) { Debug.Log("create from text"); string[] lines = System.IO.File.ReadAllLines(file); NetworkData net = new NetworkData(); Node travNode = new Node(); foreach (string line in lines) { string[] words = line.Split(' '); if (net.getRoot() != null) { travNode = net.getRoot(); } for (int i = 0; i < words.Length; i++) { if (net.getRoot() == null) { net.AddRootNode(new Node(words[i])); travNode = net.getRoot(); } else { if (!String.Equals(travNode.Text, words[i])) { Node ch = travNode.hasChildWithText(words[i]); if (ch == null) { Node nn = new Node(words[i]); nn.addParent(travNode); nn.ID = (net.getNodeCount() + 1).ToString(); net.AddNode(nn); travNode.addChild(nn); Debug.Log("creating new node _" + nn.Text + "_ with parent " + travNode.Text); Edge ne = new Edge(travNode, nn); ne.ID = (net.getEdgeCount() + 1).ToString(); net.AddEdge(ne); travNode = nn; } else { travNode = ch; } } } } // Debug.Log(net.getNodeCount()); } return(net); }
public static NetworkData ReadFromXml(string file, char sep = ' ') { NetworkData net = new NetworkData(); Debug.Log("loading"); XmlDocument doc = new XmlDocument(); doc.Load(file); XmlNodeList nodes = doc.SelectNodes("/Table/Nodes/Node"); Debug.Log("loading done" + nodes.Count); foreach (XmlNode node in nodes) { Node n = new Node(node.SelectSingleNode("Node_id").InnerText, node.SelectSingleNode("Node_text").InnerText, node.SelectSingleNode("Node_type").InnerText, new Vector3((float)Convert.ToDouble(node.SelectSingleNode("Node_posX").InnerText), (float)Convert.ToDouble(node.SelectSingleNode("Node_posY").InnerText), (float)Convert.ToDouble(node.SelectSingleNode("Node_posZ").InnerText)) ); Debug.Log("lala " + n.Text); // Debug.Log(node.Attributes.GetNamedItem("Node_id").Value); net.AddNode(n); } XmlNodeList edges = doc.SelectNodes("/Table/Edges/Edge"); foreach (XmlNode edge in edges) { Node n1 = net.getNodeById(edge.SelectSingleNode("Edge_node1").InnerText); Node n2 = net.getNodeById(edge.SelectSingleNode("Edge_node2").InnerText); Edge e = new Edge(edge.SelectSingleNode("Edge_id").InnerText, edge.SelectSingleNode("Edge_type").InnerText, n1, n2 ); // Debug.Log(node.Attributes.GetNamedItem("Node_id").Value); net.AddEdge(e); } Debug.Log("LOADING AND PARSING COMPLETE: edges=" + net.getEdgeCount() + " / nodes=" + net.getNodeCount()); return(net); }