Re: [jgrapht-users] GraphMLExporter
Brought to you by:
barak_naveh,
perfecthash
From: Mansour A. <man...@gm...> - 2016-06-17 08:36:17
|
Hi Besenyei, Thanks for your reply, but this is not what I was searching for. I wish to have different data keys for each node : <node id="1"> <data key="name">node1</data> <data key="label">label1</data> <data key="type">type1</data> </node> Is there any way to have this ? Thanks, Mansour On Thu, Jun 16, 2016 at 6:37 PM, Szabolcs Besenyei <bes...@gm...> wrote: > Hi, > > It is because you need to give a VertexNameProvider and an > EdgeNameProvider to the constructor of the exporter. > It seems you also need to define one pair of VertexNameProvider and > EdgeNameProvider for each vertex/edge respectively. > Here is a snippet on how to achieve such behaviour from the exporter: > > class GraphNode { >> String name; >> String label; >> String type; >> >> public GraphNode(String name, String label, String type) { >> this.name = name; >> this.label = label; >> this.type = type; >> } >> >> @Override >> public String toString() { >> return "GraphNode{" + "name=" + name + ", label=" + label + ", >> type=" + type + '}'; >> } >> } >> >> public class Main { >> >> public static void main(String[] args) throws IOException, >> SAXException, TransformerConfigurationException { >> DefaultDirectedGraph<GraphNode, DefaultEdge> g = >> new DefaultDirectedGraph<>(DefaultEdge.class); >> GraphNode node1 = new GraphNode("node1","label1","type1"); >> GraphNode node2 = new GraphNode("node2","label2","type1"); >> >> g.addVertex(node1); >> g.addVertex(node2); >> g.addEdge(node1, node2); >> >> VertexNameProvider<GraphNode> vLabelNameProvider = new >> StringNameProvider<>(); >> VertexNameProvider<GraphNode> vIdNameProvider = new >> IntegerNameProvider<>(); >> >> EdgeNameProvider<DefaultEdge> eLabelNameProvider = new >> StringEdgeNameProvider<>(); >> EdgeNameProvider<DefaultEdge> eIdNameProvider = new >> IntegerEdgeNameProvider<>(); >> >> GraphMLExporter<GraphNode, DefaultEdge> exporter >> = new GraphMLExporter<>(vIdNameProvider, >> vLabelNameProvider, eIdNameProvider, eLabelNameProvider); >> >> FileWriter w = new FileWriter("output.txt"); >> exporter.export(w, g); >> } >> >> } >> > > And the result: > > <?xml version="1.0" encoding="UTF-8"?><graphml xmlns=" >> http://graphml.graphdrawing.org/xmlns" xsi:schemaLocation=" >> http://graphml.graphdrawing.org/xmlns >> http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd" xmlns:xsi=" >> http://www.w3.org/2001/XMLSchema-instance"> >> <key id="vertex_label" for="node" attr.name="Vertex Label" >> attr.type="string"/> >> <key id="edge_label" for="edge" attr.name="Edge Label" >> attr.type="string"/> >> <graph edgedefault="directed"> >> <node id="1"> >> <data key="vertex_label">GraphNode{name=node1, label=label1, >> type=type1}</data> >> </node> >> <node id="2"> >> <data key="vertex_label">GraphNode{name=node2, label=label2, >> type=type1}</data> >> </node> >> <edge id="1" source="1" target="2"> >> <data key="edge_label"/> >> </edge> >> </graph> >> </graphml> >> > > Üdvözlettel, > > Besenyei Szabolcs > > 2016-06-16 16:55 GMT+02:00 Mansour Ahmadi <man...@gm...>: > >> Hi, >> >> I am trying to save a graph with custom nodes, but the export function >> doesn't save the attributes of the graph nodes (it just saves an id for >> each node). >> >> public class GraphNode { >> String name; >> String label; >> String type; >> } >> >> GraphMLExporter<GraphNode, DefaultEdge> exporter = >> new GraphMLExporter<GraphNode, DefaultEdge>(); >> w = new FileWriter(file); >> exporter.export(w, this.g); >> >> Would you please help me how can I save all of the attributes of nodes? >> >> Thanks >> >> >> ------------------------------------------------------------------------------ >> What NetFlow Analyzer can do for you? Monitors network bandwidth and >> traffic >> patterns at an interface-level. Reveals which users, apps, and protocols >> are >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, >> J-Flow, sFlow and other flows. Make informed decisions using capacity >> planning >> reports. >> http://pubads.g.doubleclick.net/gampad/clk?id=1444514421&iu=/41014381 >> _______________________________________________ >> jgrapht-users mailing list >> jgr...@li... >> https://lists.sourceforge.net/lists/listinfo/jgrapht-users >> >> > |