【发布时间】:2012-12-25 21:30:15
【问题描述】:
我有一个 XML 源,它以我无法更改的格式生成 XML。
格式类似于:
name 属性可用于分组。
解组后的结果类似于
但是我想将这些组合成类似于:
类条目{ 字符串名称=“鲍勃”; 设置颜色 = {“红色”、“蓝色”、“绿色”}; }有什么提示吗?
【问题讨论】:
我有一个 XML 源,它以我无法更改的格式生成 XML。
格式类似于:
name 属性可用于分组。
解组后的结果类似于
但是我想将这些组合成类似于:
类条目{ 字符串名称=“鲍勃”; 设置颜色 = {“红色”、“蓝色”、“绿色”}; }有什么提示吗?
【问题讨论】:
我认为在 JAXB 解组过程中执行此操作并不容易。此外,您应该已经将 public Set<String> colors 定义为对象的字段。作为单独的第二个处理步骤应该很容易实现:
entries = unmarshaller.unmarshal(...);
Map<String, Entry> compacted_entries = new HashMap<String, Entry>();
for (Entry entry: entries) {
if compacted_entries.containsKey(entry.name)
compacted_entries.get(entry.name).colors.add(entry.color);
else
compacted_entries.put(entry.name, entry);
entry.colors = new HashSet<String>();
entry.colors.add(entry.color);
end
}
【讨论】: