在Cytoscape中是否可以使用XML作为输入并将该XML解析为dagre布局?我查看了documentation,但我似乎无法找到有关XML导入的任何信息。
我能想到的一个可能性是将XML解析为JSON并将其用作输入,但我不确定XML的属性会发生什么。他们丢了吗?如何通过生成的节点(在DOM中,或通过JavaScript(或jQuery))访问它们?
答案 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。
希望这有帮助。