【问题标题】:Parse XML object in the context of another object in Xstrem在 Xstrem 中另一个对象的上下文中解析 XML 对象
【发布时间】:2018-01-14 21:27:57
【问题描述】:

假设我有以下 XML:

<people>
    <person name="John" id="1">...</person>
    .....
    <person name="Mark" id="3421">
        <father references="1" />
    </person>
</people>

我创建了以下Xstream 对象:

XStream configXstream = new XStream(new StaxDriver());
configXstream.alias("people", People.class);
configXstream.alias("person", Person.class);

我已将现有 XML 解析为 People 对象。现在我想在运行时从 XML 添加一个人,并引用它的父亲,它位于现有的 People 对象中。例如,我想添加以下内容:

<person name="Peter" id="3459">
    <father references="3421" />
</person>

现在我无法将 XML 解析为 person 对象,因为它表示对父亲的引用无效。

有没有办法告诉 xstream 解析给定上下文的对象(它应该从中解析引用的对象?)

【问题讨论】:

    标签: java xml xstream


    【解决方案1】:

    记住 XStream 是基于流模型的。它从上到下处理 XML。因此可以添加后向引用(即对已处理的人员),但根本无法解析前向引用。

    【讨论】:

      【解决方案2】:

      我最终编写了一个自定义转换器,用于扫描人员列表中的给定 ID。为此,我扩展了Converter 类,然后使用xstream.registerConverter(new MyAwesomeCustomConverter) 注册它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-10
        • 1970-01-01
        • 2021-09-07
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多