我有这样的XML结构:
<page>
<lang>
<fr>La météo de la semaine</fr>
<en>This week’s weather</en>
<l code="de">Wetter Woche</l>
</lang>
</page>
消息在各种语言上重复。每个替代方案都包含在标有ISO-639语言代码的元素中。为方便起见,可以使用<da>, <de>
代替<l code="da">, <l code="de">
。
当然,我不想为每种语言在lang类中定义一个字段。可能吗?注意:我不想使用任何jaxb扩展,例如EclipseLink JAXB(MOXy),但我将不胜感激任何建议。
答案 0 :(得分:2)
我相信我知道你在问什么。您希望将此XML转换为使用每种语言和语言内容填充的Java类对象。但是,您不希望拥有一百万个不同的成员变量,每种语言对应一个变量。
我推荐的是一个Map对象,它将语言前缀与每种语言的内容配对。如果您不熟悉地图,请检查http://docs.oracle.com/javase/6/docs/api/java/util/Map.html。
使用此方法,您可以使用任何解析策略为XML中的每个标记内容对创建新的键值对。