首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Draw.io XML文件的格式?

Draw.io XML文件的格式?
EN

Stack Overflow用户
提问于 2019-12-19 19:45:33
回答 3查看 11.3K关注 0票数 13

我在draw.io中创建了一个形状,并将其导出以获取它的XML文件,如下所示:

代码语言:javascript
运行
复制
<mxlibrary>[{"xml":"vZTNcoIwEMefJnckXjxarF7aXvoEKawk05Blwirap+8SooLa0XbaZoaZ7H8/sssPImRW7VZe1foZC7BCPgqZeUTqd9UuA2tFmphCyIVI04QfkS6/8E6CN6mVB0f3JKR9wlbZDfRKLzS0t1EoPW5qIR88kiL1FuSE7ZgJnmA3Oj1H5yA/hB5bGHUVQmNLK8AKyO85pDUF6Rgxi2kaTKkPaTKKqonNHXNPQ/Imznl9Znkx8wsSNBeD89yugCKO22pD8FqrvPO2DIw1TRUfspjwttGqwPZgkMd3yNCiD6VkFhZ71sbagT4Lq9PR0UBfhsW6sqZ0rFlYU1eYzzeufArWYtpRgcZ8DKhUuB1YUJghsjGZJNS32M69x7aJyt2YhzjTn+H8DZrT21/wX4A8A9O9H5MrO48yYX0V1xjPObz/5rMfY7j59yXf58Xm6TYLvtFl9wk=","w":190,"h":130,"aspect":"fixed","title":"notes"}]</mxlibrary>

是否可以使用这些数据插入一个新的顶点?我甚至不知道从哪里开始这个。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-26 15:05:46

终于成功了。查看mxCodec示例这里。因此,首先,按照kjhughes的描述或通过Draw.io中的Extras Draw.io编辑图菜单为节点获取未压缩的xml。然后可以添加如下所示的节点:

代码语言:javascript
运行
复制
var xml = '<root><mxCell id="2" value="Hello," vertex="1"><mxGeometry x="20" y="20" width="80" height="30" as="geometry"/></mxCell><mxCell id="3" value="World!" vertex="1"><mxGeometry x="200" y="150" width="80" height="30" as="geometry"/></mxCell><mxCell id="4" value="" edge="1" source="2" target="3"><mxGeometry relative="1" as="geometry"/></mxCell></root>';
var doc = mxUtils.parseXml(xml);
var codec = new mxCodec(doc);
var elt = doc.documentElement.firstChild;
var cells = [];

while (elt != null)
{
  cells.push(codec.decode(elt));
  elt = elt.nextSibling;
}

graph.addCells(cells);

用节点的任何xml替换xml。另外,要确保不包括

代码语言:javascript
运行
复制
<mxCell id="0"/>
<mxCell id="1" parent="0"/>

因为它们是默认的父级,它们的包含将导致无限递归,从而破坏图形。

票数 2
EN

Stack Overflow用户

发布于 2019-12-19 20:45:29

您正在查看使用放气压缩算法压缩的XML。显然,在使用它之前,您需要解压缩它。

JGraph是优秀的Draw.io绘图/图表应用程序的创建者,它提供了一个联机解压缩转换工具。下面是使用该工具解压缩后与压缩数据相关联的mxGraphModel

代码语言:javascript
运行
复制
<mxGraphModel>
  <root>
    <mxCell id="0"/>
    <mxCell id="1" parent="0"/>
    <mxCell id="2" value="" style="group;rotatable=0;" vertex="1" connectable="0" parent="1">
      <mxGeometry width="190" height="130" as="geometry"/>
    </mxCell>
    <mxCell id="3" value="Notes" style="rounded=0;whiteSpace=wrap;html=1;shadow=1;strokeColor=#CCCCCC;fillColor=#999999;fontColor=#FFFFFF;align=left;spacingLeft=4;resizable=0;movable=0;editable=0;connectable=0;allowArrows=0;rotatable=0;" vertex="1" parent="2">
      <mxGeometry width="190" height="30" as="geometry"/>
    </mxCell>
    <mxCell id="4" value="" style="rounded=0;whiteSpace=wrap;html=1;shadow=1;strokeColor=#CCCCCC;align=left;verticalAlign=top;spacingLeft=4;movable=0;resizable=0;connectable=0;allowArrows=0;rotatable=0;" vertex="1" parent="2">
      <mxGeometry y="30" width="190" height="100" as="geometry"/>
    </mxCell>
  </root>
</mxGraphModel>

还请参阅https://about.draw.io/extracting-the-xml-from-mxfiles/站点上的Draw.io

票数 15
EN

Stack Overflow用户

发布于 2022-04-25 19:51:26

我知道这个问题已经被回答了,但我会说出对我有什么帮助的。在draw.io中,您可以转到文件菜单,然后转到Properties,您可以选择禁用压缩。因此,在保存xml时,它将更加可读性更强,更易于编辑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59416025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档