代码之家  ›  专栏  ›  技术社区  ›  Bram Vanroy

Cytoscape:将XML转换为dagre布局

  •  1
  • Bram Vanroy  · 技术社区  · 8 年前

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

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

    1 回复  |  直到 8 年前
        1
  •  0
  •   gcpdev    8 年前

    您可以创建一个将XML代码序列化为JSON的函数。我使用以下命令完成了一次您想要的反向操作(将图形转换为XML代码) XMLWriter :

    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;
    }
    

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

    因此,我可以将一个名为#JSON的文本框中的JSON输入直接解析为#cy。

    希望这能有所帮助。