为了账号安全,请及时绑定邮箱和手机立即绑定

MxCodec 解码功能不适用于 XML

MxCodec 解码功能不适用于 XML

汪汪一只猫 2021-12-23 18:05:12
我正在使用 Angular7 和 MxGraph 库在 javascript 中开发一个应用程序。我可以使用以下代码将 MxGraph 模型保存到 XML 中:var enc = new mx.mxCodec(mx.mxUtils.createXmlDocument());var node = enc.encode(editor.graph.getModel());this.xml = mx.mxUtils.getPrettyXml(node);但是我无法按照 API 指示对其进行解码。我还尝试粘贴 XML 并尝试解码它,但没有成功,如下所示:// Usually I would do this:// var doc = mx.mxUtils.parseXml(this.xml);// Just for testing purposes I did thisvar doc = mx.mxUtils.parseXml(           '<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/>'+           '<Node0 label="Input" style="container" id="input"><mxCell style="container" vertex="1" connectable="0" parent="1">'+           '<mxGeometry y="20" width="100" height="580" as="geometry"/></mxCell></Node0>'+           '</root></mxGraphModel>');var dec = new mx.mxCodec(doc);dec.decode(doc.documentElement, graph.getModel());console.log(graph.getModel());在返回的模型中没有Node0.
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

我很抱歉回答我自己的回复,但我终于在这里找到了一个线索: 当 mxGraph 用作 npm 模块时,没有创建编辑器


将这些行添加到我的代码中解决了这个问题:


// Workaround because window['mxGraphModel'] is not defined

window['mxEditor'] = mx.mxEditor;

window['mxGeometry'] = mx.mxGeometry;

window['mxDefaultKeyHandler'] = mx.mxDefaultKeyHandler;

window['mxDefaultPopupMenu'] = mx.mxDefaultPopupMenu;

window['mxGraph'] = mx.mxGraph;

window['mxCell'] = mx.mxCell;

window['mxCellPath'] = mx.mxCellPath;

window['mxGraph'] = mx.mxGraph;

window['mxStylesheet'] = mx.mxStylesheet;

window['mxDefaultToolbar'] = mx.mxDefaultToolbar;

window['mxGraphModel'] = mx.mxGraphModel;


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 285 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信