2

我有一個Rss feed,我想使用Simple Framework在Java中進行解析。 我有兩個具有相同名稱的元素存在問題,但其中一個元素具有分配的名稱空間。 下面是一個示例XML:Simple-Framework:重複註釋(不同的命名空間)

<?xml version="1.0" encoding="UTF-8"?> 
<rss xmlns:dc="http://purl.org/dc/elements/1.1/"> 
    <item> 
     <title>Regular Titel</title> 
     <dc:title>Dc Titel</dc:title> 
    </item> 
</rss> 

目前我Item.class看起來是這樣的:

@Root 
public class Item { 

    @Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc") 
    @Element(name="title") 
    public String dcTitle; 

    @Element 
    public String title; 
} 

這顯然會導致名稱 '標題' 的PersistenceException下(重複標註現場 '稱號' .. ..),但我真的不知道我該怎麼做。有人能幫我弄清楚這一點!

UPDATE

Althought解決方案的工作,我現在有序列化對象的問題。我聲明的名稱空間未分配給輸出xml中的元素。

回答

1

嘗試

@Root 
public class Item { 

    @Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc") 
    @Path("title[1]") 
    @Text 
    public String dcTitle; 

    @Path("title[2]") 
    @Text 
    public String title; 
} 
+0

工程就像一個魅力。謝謝!! – AlexD

+0

如果它的工作,請**接受**的答案(見這裏:http://stackoverflow.com/faq#howtoask) – ollo

+1

我是我太匆忙。當我序列化對象時,名稱空間的前綴丟失。 – AlexD

0

你試試這個?

@Root 
@Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc") 
public class Item { 

    @Element (name = "dc:title") 
    public String dcTitle; 

    @Element (name = "title") 
    public String title; 
}