Cytoscape:将 XML 转换为 dagre 布局

Cytoscape: convert XML to dagre layout

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

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

您可以创建一个将 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。

希望对您有所帮助。