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

paj*_*to0 4 java xml simple-framework

给定以下 XML:

<stuff>
    <item id="1"><![CDATA[first stuff...]]></item>
    <item id="2"><![CDATA[more stuff...]]></item>
</stuff>
Run Code Online (Sandbox Code Playgroud)

我正在努力弄清楚如何使用简单框架反序列化它。我从以下 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>();
}
Run Code Online (Sandbox Code Playgroud)

和

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

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

    @Attribute
    public String id;
}
Run Code Online (Sandbox Code Playgroud)

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

paj*_*to0 5

我耐心地等待儿子写下他建议的解决方案,结果解决了问题。显然,他不会与一个愿意接纳我作为成员的组织有任何关系,只是稍微扭曲了格劳乔的永恒口头禅。这是他的建议,以便其他想要解决这个难题的人有一个方便的解决方案:

修改Item类如下:

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

public class Item {

    @Attribute
    public String id;

    @Text(data=true)
    public String value;
}
Run Code Online (Sandbox Code Playgroud)

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