使用XML Simple Framework反序列化包含CDATA的元素列表

时间:2014-02-08 01:56:35

标签: java xml simple-framework

给出以下XML:

<stuff>
    <item id="1"><![CDATA[first stuff...]]></item>
    <item id="2"><![CDATA[more stuff...]]></item>
</stuff>

我正在努力想弄清楚如何使用Simple Framework对其进行反序列化。我已经开始使用以下Java类:

import java.util.ArrayList;
import java.util.List;

import org.simpleframework.xml.Root;
import org.simpleframework.xml.ElementList;

@Root(name="stuff")
public class Stuff {

    @ElementList(inline=true)
    public List<Item> itemList = new ArrayList<Item>();
}

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;

@Element(name="item", data=true)
public class Item {

    @Attribute
    public String id;
}

因此,对我来说,缺少的部分是如何访问每个项目元素的CDATA内容?

1 个答案:

答案 0 :(得分:4)

我耐心等待儿子写出他建议的解决问题的解决方案。显然他将与一个让我成为会员的组织毫无关系,只会略微歪曲格劳乔的永恒口头禅。以下是他的建议,以便其他人想要解决这个难题有一个方便的解决方案:

修改Item类,如下所示:

import org.simpleframework.Attribute;
import org.simpleframework.Text;

public class Item {

    @Attribute
    public String id;

    @Text(data=true)
    public String value;
}

以便字段value将包含CDATA文本。