将XML属性添加到JUNG GraphML

时间:2014-11-18 11:54:40

标签: xml jung graphml

我正在使用JUNG构建一个Graph,然后使用GraphMLWriter写出GraphML。 使用addVertexDataaddEdgeData方法,我可以将<data>标记输出到XML。

e.g。我可以得到以下内容:

<edge id="123" source="456" target="789">
    <data key="firstname">John</data>
</edge>

使用addEdgeData

添加Transformer

我有没有办法将XML属性添加到边缘节点本身,例如得到以下内容?

<edge id="123" source="456" target="789" label="theDescriptionOfMyEdge">
    <data key="firstname">John</data>
</edge>

1 个答案:

答案 0 :(得分:1)

根据source(第151行的方法writeVertexData()和第190行的writeEdgeData()),标准GraphMLWriter似乎无法做到这一点。一种选择是在JUNG库中继承实现,并覆盖这些方法以包含您需要的功能。但是,这可能需要复制大量代码,如果更改了库类的某些内部,则可能无法升级。

最干净的解决方案是实现您自己设计良好的编写器类,以实现更灵活的输出,例如:通过使用strategies来写入顶点和边。此外,使用诸如StAX之类的API应该使编写器比库实现更强大(例如,它似乎没有执行正确的XML转义)。