我正在使用 Ruby 构建表示网络图的 gexf 格式的 XML 结构。该图由多个级别的嵌套节点组成。这个想法是解析一个看起来像这样的文件:
| top node | middle node | bottom node |
| a | 1 | "name1" |
| b | 1 | "name6" |
| a | 2 | "name3" |
| b | 2 | "name8" |
| b | 1 | "name5" |
| a | 1 | "name2" |
| b | 2 | "name7" |
| a | 2 | "name4" |
并将其转换为:
<node id = a label = "top node">
<node id = 1 label = "middle node">
<node id = name1 label = "bottom node"/>
<node id = name2 label = "bottom node"/>
</node>
<node id = 2 label = "middle node">
<node id = name3 label = "bottom node"/>
<node id = name4 label = "bottom node"/>
</node>
</node>
<node id = b label = "top node">
<node id = 1 label = "middle node">
<node id = name5 label = "bottom node"/>
<node id = name6 label = "bottom node"/>
</node>
<node id = 2 label = "middle node">
<node id = name7 label = "bottom node"/>
<node id = name8 label = "bottom node"/>
</node>
</node>
如您所见,由于文件中的行没有任何特定顺序,因此我需要在构建 XML 文件时能够引用每个节点和子节点。
如果我的问题仍然不清楚,当我阅读该行时:
| b | 1 | "name6" |
我需要能够告诉构建器将此节点“name6”粘贴在“顶部节点 b”和“中间节点 1”中。Builder 或 Nokogiri 的 builder 或其他任何东西都可能吗?