All versions of this documentation
X

GraphML


Open in a new window.
          <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <script src="../build/ogma.min.js"></script>
  <style>
    #graph-container { top:0; height:66%; left:0; right:0; position:absolute; }
    #output { top:66%; bottom:0; left:0; right:0; position:absolute; background:#eee; overflow:auto; }
  </style>
</head>
<body>
  <div id="graph-container"></div>
  <pre id="output"></pre>

<script>
'use strict';

function randomGraph(N, E) {
  var g = {nodes:[], edges:[]};

  for (var i = 0; i < N; i++) {
    g.nodes.push({
      id: 'n' + i,
      attributes: {
        x: Math.random() * 100,
        y: Math.random() * 100,
        text: 'Node ' + i,
        radius: 3 + Math.random() * 3,
        color: '#FF0000'
      },
      data: {
        aString: 'abc ' + i,
        aCrappyString: 'cr"p\n\r ',
        aBoolean: true,
        anInteger: i,
        aFloat: Math.random(),
        anArray: [1, 2, 3],
        aNull: null,
        anUndef: undefined,
        anObject: {},
        aFunction: function (argument) {}
      },
      categories: ['catA', 'catB']
    });
  }

  for (var i = 0; i < E; i++) {
    g.edges.push({
      id: 'e' + i,
      source: 'n' + (Math.random() * N | 0),
      target: 'n' + (Math.random() * N | 0),
      attributes: {
        text: 'Edge ' + i,
        width: 1 + Math.random(),
        color: '#FF0000'
      },
      data: {
        aString: 'abc ' + i,
        aBoolean: true,
        anInteger: i,
        aNull: null,
        anObject: {},
        aFunction: function (argument) {}
      },
      type: 'catA'
    });
  }

  return g;
}

var g = randomGraph(10, 10);

var ogma = new Ogma({
  graph: g,
  container: 'graph-container'
});

ogma.export.graphml({
  download: false,
  undirectedEdges: true
}).then(function(graphml) {
  document.getElementById('output').innerText = graphml;
});

</script>
</body>
</html>