给出以下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内容?
答案 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文本。