【问题标题】: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。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2018-03-16
      • 2013-05-04
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多