【问题标题】:Cytoscape: convert XML to dagre layoutCytoscape:将 XML 转换为 dagre 布局
【发布时间】:2016-08-31 11:13:42
【问题描述】:
是否可以在 Cytoscape 中使用 XML 作为输入并将 XML 解析为 dagre 布局?我查看了documentation,但似乎找不到任何有关 XML 导入的信息。
我能想到的一种可能是将 XML 解析为 JSON 并将其用作输入,但我不确定 XML 的属性会发生什么。他们迷路了吗?如何通过生成的节点(在 DOM 中,或通过 JavaScript(或 jQuery))访问它们?
【问题讨论】:
标签:
jquery
json
xml
cytoscape.js
【解决方案1】:
您可以创建一个将 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。
希望这会有所帮助。