Cytoscape:将XML转换为dagre布局

时间:2016-08-31 11:13:43

标签: jquery json xml cytoscape.js

在Cytoscape中是否可以使用XML作为输入并将该XML解析为dagre布局?我查看了documentation,但我似乎无法找到有关XML导入的任何信息。

我能想到的一个可能性是将XML解析为JSON并将其用作输入,但我不确定XML的属性会发生什么。他们丢了吗?如何通过生成的节点(在DOM中,或通过JavaScript(或jQuery))访问它们?

1 个答案:

答案 0 :(得分:0)

您可以创建一个将XML代码序列化为JSON的函数。我使用XMLWriter完成了您要查找的逆操作(将图转换为XML代码):

function createXmlCode() {
  var xw = new XMLWriter();
  xw.formatting = 'indented'; //add indentation and newlines
  xw.indentChar = ' '; //indent with spaces
  xw.indentation = 4; //add 2 spaces per level
  xw.writeStartDocument();
  xw.writeStartElement('root');
    //go on, make some for each like
    //$.each(cy.$('node'), function(k, v) { ... }
    //$.each(cy.$('edge'), function(k, v) { ... }
  xw.writeEndElement();
  var output = xw.flush();
  xw.close();
  return output;
}

反过来应该不难。我做了两个方法,但仅限于JSON。我用过:

cy.add(JSON.parse("[" + $("#json").text() + "]"));

所以我可以将名为#json的文本框中的JSON输入直接解析为#cy。

希望这有帮助。