无向加权图到xml

时间:2013-01-08 14:10:34

标签: xml graph weighted

我想表示一个无向图,就像这样:

http://cnx.org/content/m29399/latest/Picture%202.png

进入xml文件。 我不确定如何开始。

编辑:我想要xml格式的数据,所以我可以使用xml重建图形。

提前致谢

4 个答案:

答案 0 :(得分:1)

恕我直言,您不应该尝试重新发明轮子,只需使用现有的基于XML的图表格式之一:GraphMLXGMMLGXL。 GraphML似乎是最容易开始的。

答案 1 :(得分:0)

您是否需要将图形转换为xml,或者您是否已经拥有某种格式的数据?

第一个很难,第二个你可以看看Boost::Graph

答案 2 :(得分:0)

图形由顶点和边组成。因此,在顶层,XML描述应该如下所示

<graph>
    <vertices>...</vertices>
    <edges>...</edges>
</graph>

<vertices>容器将有<vertex>个元素来携带每个顶点的信息。特别是,您将需要一个唯一的标识符,边可以通过该标识符引用顶点。所以,像这样

    <vertices>
        <vertex id="A">other information, if needed</vertex>
        <vertex id="B">...</vertex>
        ...
    </vertices>

<edge>容器内的每个<edges>至少需要三条信息:连接的顶点和边缘的权重。因此,例如

    <edges>
        <edge ends="A B">7</edge>
        <edge ends="B C">8</edge>
        ...
    </edges> 

您可以将所有这些放入一个模式中,例如,您可以强制要求“ends”属性包含对图中存在的顶点的id的引用(即,查找xs:ID和xs :XML Schema文档中的IDREF。)

答案 3 :(得分:0)

我一直在尝试,这似乎有效:

   <Nodes>
       <Node>
           <Name>A</Name>
       </Node> 
       <Node>
           <Name>B</Name>
       </Node> 
        ....
   </Nodes>

   <Routes>
       <Route>
          <from>A</from>
          <to>B</to>
          <cost>7</cost>
        </Route>
        ....
   </Routes>

可能不是最好的方式,但这对我有用:)enter code here