private string CreateXml(GraphML graphML) { var sb = new StringBuilder(); sb.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.AppendLine( "<graphml xmlns=\"http://graphml.graphdrawing.org/xmlns\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd\">"); sb.AppendLine($"<graph id=\"{graphML.Id}\" edgedefault=\"directed\">"); foreach (GraphMLNode node in graphML.Nodes) { sb.AppendLine($"<node id=\"{node.Id}\"/>"); } foreach (GraphMLEdge edge in graphML.Edges) { sb.AppendLine($"<edge source=\"{edge.Source}\" target=\"{edge.Target}\"/>"); } sb.AppendLine("</graph>"); sb.AppendLine("</graphml>"); return(sb.ToString()); }
public ActionResult Index() { string xml; FacebookApp app = new FacebookApp(); JsonObject me = (JsonObject)app.Get("me"); JsonObject friends = (JsonObject)app.Get("me/friends"); FacebookFriends facebookFriends = JsonConvert.DeserializeObject <FacebookFriends>(friends.ToString()); XmlSerializer serializer = new XmlSerializer(typeof(GraphML)); XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); List <FacebookUser> users = new List <FacebookUser>(); GraphML graphML = new GraphML(); // Add Users users.Add(JsonConvert.DeserializeObject <FacebookUser>(me.ToString())); foreach (FacebookUser user in facebookFriends.Friends) { JsonObject friend = (JsonObject)app.Get(user.Id.ToString()); users.Add(JsonConvert.DeserializeObject <FacebookUser>(friend.ToString())); } // Prepare the keys AddKeys(graphML.Keys); // Add the Berico namspace namespaces.Add("berico", "http://graph.bericotechnologies.com/xmlns"); foreach (FacebookUser user in users) { graphML.Graph.Nodes.Add(Mapper.Map <FacebookUser, Node>(user)); } using (MemoryStream stream = new MemoryStream()) { XmlDocument doc = new XmlDocument(); serializer.Serialize(stream, graphML, namespaces); stream.Seek(0, SeekOrigin.Begin); doc.Load(stream); // Read the XML into a string object xml = doc.OuterXml; } return(this.Content(xml, "txt/xml")); }