Examples
These simple examples gives you the way to start with libgexf.
Creating content
How to add nodes, edges, node labels, data attributes and meta data:
http://gexf.net/data/create.cpp
#include <stdlib.h>
// if libgexf is installed
#include <libgexf/libgexf.h>
void create() {
libgexf::GEXF *gexf = new libgexf::GEXF();
libgexf::DirectedGraph& graph = gexf->getDirectedGraph();
// nodes
graph.addNode("0");
graph.addNode("1");
// edges
graph.addEdge("0", "0", "1");
// node labels
libgexf::Data& data = gexf->getData();
data.setLabel("0", "Hello");
data.setLabel("1", "world");
// attributes
data.addNodeAttributeColumn("0", "foo", libgexf::BOOLEAN);
data.setNodeAttributeDefault("0", "false");
data.setNodeValue("1", "0", "true");
// meta data
libgexf::MetaData& meta = gexf->getMetaData();
meta.setCreator("The Hitchhiker's Guide to the Galaxy");
meta.setDescription("The answer is 42.");
// dump
std::cout << "Dump:" << std::endl << *gexf;
}
Reading a GEXF file
Simply read the in.gexf file and load it in memory:
http://gexf.net/data/read.cpp
#include <stdlib.h>
// if libgexf is installed
#include <libgexf/libgexf.h>
libgexf::GEXF read() {
libgexf::FileReader* reader = new libgexf::FileReader();
reader->init("in.gexf");
reader->slurp();
return reader->getGEXFCopy();
}
Writing a GEXF file
Simply read the in.gexf file and load it in memory:
http://gexf.net/data/write.cpp
#include <stdlib.h>
// if libgexf is installed
#include <libgexf/libgexf.h>
void write(libgexf::GEXF *gexf) {
libgexf::FileWriter* writer = new libgexf::FileWriter();
writer->init("out.gexf", gexf);
writer->write();
}
XSD validation
How to validate a GEXF file regarding the XML Schema definition:
http://gexf.net/data/xsd_validate.cpp
#include <stdlib.h>
// if libgexf is installed
#include <libgexf/libgexf.h>
void validate() {
bool res = libgexf::SchemaValidator::run( "path/to/my/file.gexf",
"/usr/include/libgexf/resources/xsd/gexf.xsd");
std::cout << "isValid: " << res << std::endl;
}
Data integrity and type checking
How to check node labels, the types of attribute data, default values of liststrings, and if each attvalue has a value or a defaultvalue:
bool ok = gexf.checkIntegrity();
Go back >> home
-
Download v0.1.2 (500 KB)
Only sources in GZIP are available for unstable versions.
-
Documentation
Hope it will help.
-
Examples
Start easily.
-
Stay involved
Syndicate to our news feed, read the FAQ and ask your questions there.
-
It is Open
This project is distributed under MIT License.
-
Source and Bugs
LibGEXF uses the DCVS Bazaar and the platforme Launchpad. The current repository is hosted on Launchpad, this means you can get there the most up to date code, but it may be unstable.
Please report bugs in our issue tracker.
-
Useful Links
- gexf file format: official format specifications
- rgexf: R library
- gexf4j: Java library
- pygexf: Python library
- graphology-gexf: Javascript library
- gexf-js: JavaScript library
- sigma.js: JavaScript library
- Gephi: graph exploration and manipulation sofware
- SWIG: Simplified Wrapper Interface Generator