我正在使用JUNG构建一个Graph,然后使用GraphMLWriter写出GraphML。
使用addVertexData
和addEdgeData
方法,我可以将<data>
标记输出到XML。
e.g。我可以得到以下内容:
<edge id="123" source="456" target="789">
<data key="firstname">John</data>
</edge>
使用addEdgeData
我有没有办法将XML属性添加到边缘节点本身,例如得到以下内容?
<edge id="123" source="456" target="789" label="theDescriptionOfMyEdge">
<data key="firstname">John</data>
</edge>
答案 0 :(得分:1)
根据source(第151行的方法writeVertexData()
和第190行的writeEdgeData()
),标准GraphMLWriter
似乎无法做到这一点。一种选择是在JUNG库中继承实现,并覆盖这些方法以包含您需要的功能。但是,这可能需要复制大量代码,如果更改了库类的某些内部,则可能无法升级。
最干净的解决方案是实现您自己设计良好的编写器类,以实现更灵活的输出,例如:通过使用strategies来写入顶点和边。此外,使用诸如StAX之类的API应该使编写器比库实现更强大(例如,它似乎没有执行正确的XML转义)。