2014-02-08 43 views
3

元素的列表:使用XML的簡單框架反序列化考慮下面的XML包含CDATA

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

我掙扎的境地弄清楚如何使用簡單的框架反序列化這一點。

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內容爲每個項目元素:我已經用下面的Java類開始了呢?

回答

3

我耐心地等着我的兒子寫出他提出的解決方案,最終解決了問題。很顯然,他和一個讓我成爲會員的組織毫無關係,只是略微扭曲了格勞喬的永恆口頭禪。下面是他的建議,提供讓其他的尋找到解決這個難題有一個方便的解決方案:

修改的項目類,如下所示:

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

public class Item { 

    @Attribute 
    public String id; 

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

使得場value將包含CDATA文本。