首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析XML,引用前面的标记,并使用与某个类的子类型相对应的子类

解析XML,引用前面的标记,并使用与某个类的子类型相对应的子类
EN

Stack Overflow用户
提问于 2012-12-27 19:03:53
回答 3查看 2.5K关注 0票数 16

我必须处理以下场景(其变体)。我的模型类是:

class Car {
    String brand;
    Engine engine;
}

abstract class Engine {
}

class V12Engine extends Engine {
    int horsePowers;
}

class V6Engine extends Engine {
    String fuelType;
}

并且我必须对以下输入进行反序列化(不需要序列化支持ATM):

<list>

    <brand id="1">
        Volvo
    </brand>

    <car>
        <brand>BMW</brand>
        <v12engine horsePowers="300" />
    </car>

    <car>
        <brand refId="1" />
        <v6engine fuel="unleaded" />
    </car>

</list>

我尝试过的内容/问题:

我尝试过使用XStream,但它要求我编写如下标记:

<engine class="cars.V12Engine">
    <horsePowers>300</horsePowers>
</engine>

等等。(我不想要<engine>-tag,我想要<v6engine>-tag或<v12engine>-tag。

此外,我还需要能够根据标识符引用“预定义的”品牌,如上面的品牌id所示。(例如,通过在反序列化期间维护Map<Integer, String> predefinedBrands )。我不知道XStream是否适合这样的场景。

我意识到这可以使用推式或拉式解析器(例如SAX或StAX)或DOM库“手动”完成。然而,我更喜欢一些自动化的东西。理想情况下,我应该能够添加类(比如新的Engine),并立即开始在XML中使用它们。(XStream绝不是必需的,最优雅的解决方案会赢得赏金。)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14053611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档