首页 > 解决方案 > NetworkX 似乎在 graphml 元素声明中删除了信息——有没有办法恢复它?

问题描述

假设一个 graphml 文件定义了节点:

# foo.graphml

<?xml version="1.0" encoding="utf-8"?>
<graphml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://graphml.graphdrawing.org/xmlns">
  <key id="x" for="node" attr.name="x" attr.type="string" />
  <graph>
    <node id="abc" type="x">
      <data key="x">y</data>
    </node>
  </graph>
</graphml>

并运行以下 python3 代码:

>>> import networkx
>>> graph = networkx.read_graphml('foo.graphml')
>>> nodes = list(graph.nodes(data=True))
>>> nodes
[('abc', {'x':'y'})]

有没有一种方法或方式可以type="x"从元素定义中获取属性,或者如果没有某种 kludge 或转换,这是不可能的/不是 graph-ml 的一部分?

标签: python-3.xnetworkxgraphml

解决方案


推荐阅读