我有一个Rss feed,我想使用Simple Framework在Java中进行解析。
我在使用2个具有相同名称的元素时遇到问题,但是其中一个分配了名称空间。
这是一个示例xml:

<?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(在字段“标题”上对名称“标题”重复标注...。),但是我真的不知道该怎么做。有人可以帮我解决这个问题!

更新

尽管该解决方案有效,但我现在在序列化对象时遇到了问题。我声明的名称空间未分配给输出xml中的元素。

最佳答案

尝试

@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;
}

09-11 18:50
查看更多