0

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

例如,我可以得到以下信息:

<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>
4

1 回答 1

1

根据消息来源writeVertexData()第 151 行和writeEdgeData()第 190 行的方法),这似乎不适用于标准GraphMLWriter. 一种选择是将 JUNG 库中的实现子类化并覆盖这些方法以包含您需要的功能。但是,这可能需要复制大量代码,并且如果库类的某些内部结构发生更改,则可能不安全。

最简洁的解决方案是实现您自己精心设计的编写器类,以实现更灵活的输出,例如通过使用编写顶点和边的策略。此外,使用StAX之类的 API应该使编写器比库实现更健壮(例如,它似乎没有执行正确的 XML 转义)。

于 2014-11-19T15:07:40.250 回答