相同的XmlElements具有不同的名称

时间:2012-06-13 12:01:12

标签: java jaxb

我有这样的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),但我将不胜感激任何建议。

1 个答案:

答案 0 :(得分:2)

我相信我知道你在问什么。您希望将此XML转换为使用每种语言和语言内容填充的Java类对象。但是,您不希望拥有一百万个不同的成员变量,每种语言对应一个变量。

我推荐的是一个Map对象,它将语言前缀与每种语言的内容配对。如果您不熟悉地图,请检查http://docs.oracle.com/javase/6/docs/api/java/util/Map.html

使用此方法,您可以使用任何解析策略为XML中的每个标记内容对创建新的键值对。