【问题标题】:JAXB Combine similar elementsJAXB 组合相似元素
【发布时间】:2012-12-25 21:30:15
【问题描述】:

我有一个 XML 源,它以我无法更改的格式生成 XML。
格式类似于:

name 属性可用于分组。
解组后的结果类似于

类条目{ 字符串名称=“鲍勃”; 字符串颜色=“红色”; } 类条目{ 字符串名称=“鲍勃”; 字符串颜色=“绿色”; }

但是我想将这些组合成类似于:

类条目{ 字符串名称=“鲍勃”; 设置颜色 = {“红色”、“蓝色”、“绿色”}; }

有什么提示吗?

【问题讨论】:

    标签: java jaxb


    【解决方案1】:

    我认为在 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
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      相关资源
      最近更新 更多