使用XML Simple框架反序列化一个包含CDATA元素的元素列表

4

给定以下XML:

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

我正在努力弄清楚如何使用Simple框架反序列化这个内容。我从以下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个回答

5

我耐心地等待着儿子写出他建议的解决方案,最终证明这个方案解决了问题。显然他与那些会让我成为成员的组织毫无关系,这只是略微扭曲了格劳乔的永恒口头禅。以下是他的建议,为了让其他寻求解决这个难题的人有一个便利的解决方案:

将Item类修改如下:

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

public class Item {

    @Attribute
    public String id;

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

这样字段value将包含 CDATA 文本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接