在mxgraph中读取/解析自定义Xml

时间:2015-04-15 06:26:15

标签: javascript xml electronics mxgraph

我有从第三方应用程序创建的自定义xml,它是关于电子数据的数据(图表)。现在我想在mxgraph中重写相同的数据。
请找到第三方应用程序的xml样本

    <component type="Rerror" mirrored="0" typeid="57" nodematch="0" macrotype="2" position="280,260" orientation="0">
  <parameter idx="0" encrypted="0">
data unrelated to drawing here
  </parameter>
  <image>
    <hotzone points="60,-10,-60,10"/>
    <shape type="line" width="1" color="#0000ff" points="60,0,40,0"/>
    <shape type="line" width="1" color="#0000ff" points="40,0,30,-10"/>
    <shape type="line" width="1" color="#0000ff" points="30,-10,10,10"/>
    <shape type="line" width="1" color="#0000ff" points="10,10,-10,-10"/>
    <shape type="line" width="1" color="#0000ff" points="-10,-10,-30,10"/>
    <shape type="line" width="1" color="#0000ff" points="-30,10,-40,0"/>
    <shape type="line" width="1" color="#0000ff" points="-40,0,-60,0"/>
    <legend text="0.332 MOhm" position="-36,20" orientation="0" fontname="Arial" fontsize="12" bold="0" italic="0" color="#229922"/>
    <pin position="-60,0" dir="0" length="0" text="6"/>
    <pin position="60,0" dir="0" length="0" text="3"/>
    <label text="Rerror" position="250,236" textroot=" " orientation="0" color="#228822"/>
  </image>
</component>

上面的xml必须使用mxgraph进行解析和重绘。 哪里

  • 组件:是特定单元的整体图像(可以有很多组件

  • 参数:此部分应为igonred

  • 图片:图片部分包含了必须在图表中绘制的x,y坐标的数据


我正在浏览mxgraph用户指南&amp;我是mxgraph的新手。我能够使用&#34; mxUtils.parseXml(&#39; location&#39;)&#34; 看到xml的正常痘痘 请帮我解析如何解析自定义文件
非常感谢提前。

2 个答案:

答案 0 :(得分:0)

parseXML()只会让它更容易在代码中使用(如果需要,可以创建一个DOM文档)但是你必须编写你的&#34;转换器&#34;手动

为您的每个文件创建一个mxCell。为您的各种细胞创建不同的样式,并且您已完成。

如果你所有的shapres都是矩形的,它应该是空气直截了当的!

答案 1 :(得分:0)

  1. 将xml转换为java对象。这与JGraph无关。如果.xsd可用,则可以使用JAXB。

  2. 从xml获得java对象后,可以使用其中包含的信息来创建边和顶点。在基于JGraph的应用程序中,mxGraph类包含方法insertVertexinsertEdge,它们将您的位置和标签作为参数。例如,您可以遍历从XML解析的java对象,并为每个对象调用graph.insertVertex()

  3. 如果mxGraph对象无法直接使用,您可以使用mxGraphComponent.getGraph()与其对齐。 mxGraphComponent应该可以从您选择的编辑中获得,即。 editor.getGraphComponent()